1、需求

需求很簡單,就是在C#開發(fā)中高速寫日志。比如在高并發(fā),高流量的地方需要寫日志。我們知道程序在操作磁盤時是比較耗時的,所以我們把日志寫到磁盤上會有一定的時間耗在上面,這些并不是我們想看到的。

 

2、解決方案

2.1、簡單原理說明

使用列隊先緩存到內(nèi)存,然后我們一直有個線程再從列隊中寫到磁盤上,這樣就可以高速高性能的寫日志了。因為速度慢的地方我們分離出來了,也就是說程序在把日志扔給列隊后,程序的日志部分就算完成了,后面操作磁盤耗時的部分程序是不需要關(guān)心的,由另一個線程操作。

俗話說,魚和熊掌不可兼得,這樣會有一個問題,就是如果日志已經(jīng)到列隊了這個時候程序崩潰或者電腦斷電都會導(dǎo)致日志部分丟失,但是有些地方為了高性能的寫日志,是否可以忽略一些情況,請各位根據(jù)情況而定。

 

2.2、示例圖

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式