1、需求
需求很簡單,就是在C#開發(fā)中高速寫日志。比如在高并發(fā),高流量的地方需要寫日志。我們知道程序在操作磁盤時是比較耗時的,所以我們把日志寫到磁盤上會有一定的時間耗在上面,這些并不是我們想看到的。
2、解決方案
2.1、簡單原理說明
使用列隊先緩存到內(nèi)存,然后我們一直有個線程再從列隊中寫到磁盤上,這樣就可以高速高性能的寫日志了。因為速度慢的地方我們分離出來了,也就是說程序在把日志扔給列隊后,程序的日志部分就算完成了,后面操作磁盤耗時的部分程序是不需要關(guān)心的,由另一個線程操作。
俗話說,魚和熊掌不可兼得,這樣會有一個問題,就是如果日志已經(jīng)到列隊了這個時候程序崩潰或者電腦斷電都會導(dǎo)致日志部分丟失,但是有些地方為了高性能的寫日志,是否可以忽略一些情況,請各位根據(jù)情況而定。
2.2、示例圖
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26