在c或java编程中使用交换文件

在c或java编程中使用交换文件,java,c,linux,unix,swap,Java,C,Linux,Unix,Swap,我在一个c程序中工作(我可以很容易地用java重写),我想如果我使用swap来增加ram,它可以顺利运行。但是我不知道如何调用交换文件/分区。我可以在c或java上做吗?我能问一下用户在安装时是否想要创建一个交换文件吗 但是我不知道如何调用交换文件/分区。我可以在c或java上做吗 由于C和Java程序可以执行外部系统命令并进行系统调用(在Java情况下,通过JNI),原则上,您可以这样做。然而,这类事情当然需要特权,因此通常不能在普通用户的授权下进行 我能问一下用户在安装时是否想要创建一个交换

我在一个c程序中工作(我可以很容易地用java重写),我想如果我使用swap来增加ram,它可以顺利运行。但是我不知道如何调用交换文件/分区。我可以在c或java上做吗?我能问一下用户在安装时是否想要创建一个交换文件吗

但是我不知道如何调用交换文件/分区。我可以在c或java上做吗

由于C和Java程序可以执行外部系统命令并进行系统调用(在Java情况下,通过JNI),原则上,您可以这样做。然而,这类事情当然需要特权,因此通常不能在普通用户的授权下进行

我能问一下用户在安装时是否想要创建一个交换文件吗

原则上,是的,你可以这样做。当程序由系统管理员安装时,您甚至可以依靠拥有足够的权限来对肯定的响应采取行动

但你不应该这样做。这是系统管理员的职责,我认识的任何系统管理员都不会欢迎程序的安装人员尝试——甚至提供——破坏系统的虚拟内存配置。此外,如果您的安装程序被接受,您的安装程序是否能够成功地遵循这样一个建议是值得怀疑的,因为您需要足够的未分配磁盘空间来创建交换分区,以及足够的可用(可能是连续的)磁盘空间来创建交换文件

相反,记录程序的最低和理想内存需求。您可以考虑在安装时检查系统是否满足这些要求,但是您作为软件提供者的责任在那里结束,这不是一个适合您或欢迎您超出您职责范围的区域。

但是我不知道如何调用交换文件/分区。我可以在c或java上做吗

由于C和Java程序可以执行外部系统命令并进行系统调用(在Java情况下,通过JNI),原则上,您可以这样做。然而,这类事情当然需要特权,因此通常不能在普通用户的授权下进行

我能问一下用户在安装时是否想要创建一个交换文件吗

原则上,是的,你可以这样做。当程序由系统管理员安装时,您甚至可以依靠拥有足够的权限来对肯定的响应采取行动

但你不应该这样做。这是系统管理员的职责,我认识的任何系统管理员都不会欢迎程序的安装人员尝试——甚至提供——破坏系统的虚拟内存配置。此外,如果您的安装程序被接受,您的安装程序是否能够成功地遵循这样一个建议是值得怀疑的,因为您需要足够的未分配磁盘空间来创建交换分区,以及足够的可用(可能是连续的)磁盘空间来创建交换文件


相反,记录程序的最低和理想内存需求。您可以考虑在安装时检查系统是否满足这些要求,但是您作为软件提供者的责任在那里结束,这不是一个适当或不受欢迎超出您职责范围的区域。它是操作系统虚拟内存子系统的一部分。已经开始了。它对用户代码是透明的。@Thingywot是的,但它只有在系统RAM已满时才打开,我想知道是否有办法通过默认值打开它在Java中,您只需传递一个参数来增加分配给JVM的内存:Java不允许您以这种方式操作内存。您可以指定分配给JVM的数量;其余的由JVM和操作系统处理。如果每个程序都能如此轻松地更改系统设置,那么一切都会很快崩溃。这是操作系统域,它决定分配给用户模式程序的内容。什么?它是操作系统虚拟内存子系统的一部分。已经开始了。它对用户代码是透明的。@Thingywot是的,但它只有在系统RAM已满时才打开,我想知道是否有办法通过默认值打开它在Java中,您只需传递一个参数来增加分配给JVM的内存:Java不允许您以这种方式操作内存。您可以指定分配给JVM的数量;其余的由JVM和操作系统处理。如果每个程序都能如此轻松地更改系统设置,那么一切都会很快崩溃。这是操作系统域,它决定分配给用户模式程序的内容。