我们用c ++编写一个图像处理程序,首先在Ram中创建一个16MB的查找表,只要我们的程序运行,我们希望它在Ram中! 当我们在Windows 7中测试时:使LUT大约需要4秒钟,从LUT读取并填充到矩阵需要 7微秒。
但我们必须在Linux中运行该软件,结果令人困惑 使LUT大约需要3秒钟,但从LUT读取并填充到矩阵需要 30毫秒 !!!
我们猜是因为LUT移动到交换!
你有任何想法吗?或者如果我们的猜测是真的,那么无论如何都要将LUT保留在Linux中?!
答案 0 :(得分:0)
mlock(2)
将锁定RAM中的一段进程空间。