|
12
|
| Chris Johnson Thomas M. DuBuisson · 技术社区 · 15 年前 |
|
|
1
9
在linux下,可以使用mlock()/mlockall()在物理内存中保留一个地址范围,防止它被调出。使用mlock的进程需要一些特权来完成这个任务,“manmlock”提供了详细信息。我不确定最大的mlock'able块(它可能不同于看似“free”的块),所以二进制搜索可能会有所帮助(锁定一个范围,如果失败,则减小区域大小等…) 另一方面,对于固态驱动器来说,110MB/s并不是一个真正的问题。一个写速度为280MB/s的60gbssd售价约为200美元。只需将传感器数据复制到一个小的写入缓冲区中,并将其流式传输到SSD。 |
|
|
2
3
|
|
|
3
0
如果你
为了避免这种情况,你可以
如果你只使用可用的 身体的 记忆,你不应该遭受任何交换。使用更多会导致其他进程的内存被交换到磁盘上-如果这些进程是空闲的,则不会造成任何问题。如果它们处于活动状态(即偶尔使用内存),则会发生一些交换—交换速率可能比硬盘带宽低得多。您使用的内存越多,活动进程的内存将被交换出去,并且会发生更多的HD活动—此时,您可以使用的最大内存量以及良好的性能几乎是反复试验的结果。 如果使用的内存超过了可用的物理内存,那么肯定会导致以写入内存的速度进行交换,这是无法避免的。 |
|
|
4
0
由于虚拟内存的使用方式,不可交换的内核内存,几乎不可能确定应用程序可以访问多少已安装的内存。
不幸的是,报告的空闲内存并不是真正的“空闲物理内存”。
在Linux内核开发的步伐中,知识很快就会过时,所以请对我在这里说的话持保留态度。您可以尝试使用以下内容:
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 9 月前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 9 月前 |
|
|
Bobby · 复合字面值总是左值吗? 10 月前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 10 月前 |