尋找一個C/C++程序來測試訪問一塊固定的內存需要多長時間,特別是在RAM中。如何測試主內存訪問時間?
如何確保測試訪問時間不是緩存或TLB數據?
例如,我可以「禁用」所有緩存/ TLB嗎?
或者我可以在RAM中指定一個特定的地址來寫/只讀嗎?
另一方面,我將如何確保我只測試緩存?
有沒有辦法告訴編譯器在哪裏保存和讀取緩存/內存?
例如,是否有知道該測試的知名標準程序(in one of these books?)?
我沒有看到這一點,但我不明白如何調整列表的大小,可以控制內存是否接入命中L1高速緩存,L2高速緩存,或者主內存:measuring latencies of memory
如何才能正確地設定此測試?
你可以通過使用關鍵字'register'來請求緩衝存儲器......不確定使用較慢的內存...... –
@ bit-fiddling-code-monkey:請示例,我可以將其添加到問題中。 .. –
'寄存器'是一個編譯器提示使用一個CPU寄存器,這是完全不同的緩存內存.... –