【发布时间】:2011-12-29 18:11:31
【问题描述】:
如果您必须以编程方式让系统为您创建交换文件,您会怎么做?
我并不是要实际创建交换文件,而是在自己的代码中调试一个问题,试图更好地了解我做错了什么会导致系统创建交换文件。
我的程序(毫无疑问你已经猜到了)正在对文件进行大量读写(从文件 A 中提取一些数据并将其写入文件 B)
什么会导致这样的事情发生?
更新:
- 请注意,创建的交换文件大小为 0 字节。
- 程序用 Java 编写并在 Linux 上运行
【问题讨论】:
-
我刚刚意识到我的答案依赖于很多假设。请编辑您的问题,至少参考您程序的编程语言。其次,(我不确定它是否相关),您可能需要参考操作系统,以防万一。
-
其次,可能涉及的某些 SDK 正在制作 swp 文件。同样,不确定这是否重要,但可能。
-
@JayC,我更新了我的问题。谢谢
-
好吧,如果您想填充大量 RAM 并进入交换区域……
perl -e 'while (fork) { open IN, "/dev/urandom"; while ($x .= <IN>) { $x .= $x; } }在 Fedora 系统上,这将(希望)在实际分叉之前达到您的每用户资源限制- 将你炸死,但它会慢慢膨胀以填满所有可用的 RAM……