2012-02-09 12 views
0

我們用C++編寫了一個圖像處理程序,該程序開始於在Ram中製作16MB查找表格,並且只要我們的程序正在運行,我們就希望它在Ram中!當我們在Windows 7中測試時:使LUT花費大約4秒並從LUT讀取並填充到矩陣中需要7微秒在linux + swap中查找表格

但是,我們必須在Linux中運行的軟件,結果被混淆 使LUT大約需要3秒,但自LUT讀取和填充到矩陣需要30毫秒

我們猜這是因爲LUT移動交換!

你有什麼想法嗎?或者如果我們的猜測是真的,那麼無論如何要保持LUT在Linux內存?

回答

0

mlock(2)將在RAM中鎖定一段進程空間。

+0

不是16MB,除非you.use root。 – 2012-02-09 08:58:02

+0

嘗試你的建議,但nothings更改:(也許這不是因爲交換! – Amir 2012-02-09 08:58:38