杜思波2008技術大討論
仔細模擬一下你的資料庫程式,你有沒有發現在計算時(特別是多使用者計算時)經常重複讀取資料庫資料?!這是資料庫處理程式的效能的最主要的殺手。
有些人說在寫程式之前應該把演算法想好,使得資料記錄成批地、一次性地讀取。但是這實際上往往不可能,因為複雜的程式貼近邏輯流程才清晰可維護。更何況這也不能解決多使用者訪問的情況。最好,我們根本不用在寫程式時去考慮資料是否會被重複讀取從而改變程式流程,但是又能自然而然地防止重複讀取資料庫。當對計算過程進行優化,而又不想破壞邏輯清晰性的時候,當然就是要依靠簡單的cache —— 物件只要能夠快取幾秒鐘就好。
下面我這裡寫乙個世界上最懶惰的程式設計師使用.net寫的乙個最簡單的cache,但是它往往可以讓複雜的計算程式大大提高計算速度。
c# code
usingsystem;
using
system.collections.generic;
namespace
domainbase
set }
public
void
remove(
string
key)
}}
這就是最簡單的cache。例如:
public class user
return ret;
} .....
這裡,在乙個dictionary 結構字典中儲存了物件的key以及物件的「弱引用」。這樣,當記憶體不足時gc會照樣去釋放被快取的物件。當我們需要將物件在幾秒鐘內進行快取時,使用這個最簡單的cache很有用。
.net framework中有非常多非常多的東西需要程式設計師去了解,不要僅僅抱著那些空洞、不實惠的「放之四海而皆準」的大部頭的著作,有時間要多讀一些實際地分析 .net framework 系統本身的方面的資料。在每乙個技術中都可以找對一兩個細節,這個細節就像掌握dna技術一樣能夠讓你不但擴充套件原理而且通過動手能力得到巨大實惠。
Buffer的準備和資料讀取
int ioctl int fd,int requestbuf,struct v4l2 requestbuffers argp 引數一 open 所產生的控制代碼。引數二 vidioc reqbufs 引數三 in out結構體。struct v4l2 requestbuffers u32 coun...
Buffer類的使用
指定長度的buffer例項 let a buffer new buffer number length 為buffer例項賦值 a.fill value 通過陣列實現buffer的例項 使用陣列初始化緩衝區 let a buffer new buffer array 通過字串和編碼實現buffer的...
很好的出口程式
report z find exit badi no standard page heading.tables tstc,tadir,modsapt,modact,trdir,tfdir,enlfdir,sxs attrt,tstct.data jtab like tadir occurs 0 wi...