我们有一个时间关键的过程(第三方代码),它有mlockall。我正在将这段代码移植到没有硬盘的嵌入式系统上。它是只有RAM的系统,它从SD卡启动,并在SD卡中有存储。
mlockall在只有RAM的系统中有性能优势吗?
只是为了检查它是否尝试了任何交换分区: cat /proc/swaps Filename Type Size Used Priority
在这种情况下,我可以删除mlockall,因为它不会在我们的系统中增加任何价值。请帮帮忙。
发布于 2016-11-11 10:39:35
当面临内存压力时,linux内核可能会决定从RAM中逐出页面。脏页(包含可写数据)只能换出。干净的页面(只读),比如你的进程的文本部分可能会被丢弃。当需要时,这样的页面将通过页面错误被带回。
第一种情况不会发生在你身上,因为没有掉期。第二种情况可能会发生,并且可以通过mlockall调用来防止。
总体而言,讨论是理论上的,因为在内存压力下运行系统会引入许多不确定的行为,这对实时系统是不好的。
https://stackoverflow.com/questions/40530955
复制相似问题