在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C  Linux  數(shù)據(jù)庫/ linux中l(wèi)ist.h里面的prefetch()的作用?

linux中l(wèi)ist.h里面的prefetch()的作用?

如題請問這個prefetch()具體起到一個什么樣的作用呢?在度娘上看了一下,還是有些懵,或者說什么樣的場景下使用prefetch()更為合適?

#define prefetch(x) NULL
    
#define list_for_each(pos, head) \ 
    for (pos = (head)->next; prefetch(pos->next), pos != (head); \ 
            pos = pos->next)
回答
編輯回答
六扇門
  1. 有一個共識是:程序訪問的變量如果都能在系統(tǒng)內存cache中則能提升性能,prefetch是內核中一個預熱內存函數(shù),這樣下次遍歷時就能高效命中內存cache,從而提升程序性能。

  2. 上面的代碼中遍歷鏈表時下次訪問的內存為pos->next,故在每次遍歷時對pos->next進行預熱,從而提升性能。

2018年8月18日 02:54