我的內存塊可能很大(大于L2緩存),有時我必須將它們設置為全零。memset的串行代碼很好,但是并行代碼呢?如果有人從并發線程中調用memset確實可以加快大型數組的運行速度,是否有人經驗?甚至使用簡單的openmp并行for循環?
2 回答

達令說
TA貢獻1821條經驗 獲得超6個贊
在第一次調用malloc
該內存時,使用anonymous進行分配mmap
。這導致在進程的虛擬地址空間中進行映射,但是該映射仍然不受物理RAM幀的支持,而是在區域中的所有位置對寫全復制的特殊內核頁進行全寫復制。因此,從剛映射的內存讀取將返回零。首次寫入該區域內的某個地址時,將發生頁面錯誤,故障處理程序將找到一個可用的RAM幀并將其映射到相應的頁面。
添加回答
舉報
0/150
提交
取消