2017-04-03 54 views
0

我在C程序中使用工作交换文件(我可以在Java重写容易),我想,如果我用交换来增加RAM它可以流畅运行。但我不知道如何调用交换文件/分区。我可以在c或java上做到吗?我可以问一下,如果用户在安装时想要创建交换文件吗?在C或Java编程

+3

什么?它是操作系统虚拟内存子系统的一部分。这是'已经'。它对用户代码透明。 – ThingyWotsit

+0

@ThingyWotsit是的,但它只是打开如果系统内存满了,我在想,如果有一种方式默认 – Strule

+0

在Java中打开它,你只需通过一个参数来增加分配给JVM的内存:HTTP:/ /stackoverflow.com/questions/1565388/increase-heap-size-in-java –

回答

3

但我不知道怎么称呼交换文件/分区。我可以在c或java上做到吗?

由于C和Java程序可以执行外部系统命令并可以进行系统调用(通过JNI,在Java情况下),原则上,您可以执行此操作。然而,这样的事情肯定需要特权,所以它通常不能在普通用户的权限下完成。

我可以问,如果用户,在安装,如果他想创建一个交换文件?

原则上,是的,你能做到这一点。在系统管理员正在安装程序的情况下,您甚至可以依靠拥有足够的特权来采取积极响应。

但你不应该。这是系统管理员的职责和责任,我知道没有任何系统管理员会欢迎程序的安装程序试图(甚至是提供)使用系统的虚拟内存配置。此外,如果您的安装程序能够成功接受此类优惠(如果它被接受),是否值得怀疑,因为您需要足够的未分配磁盘空间来创建交换分区以及交换文件具有足够的空闲可能连续的磁盘空间。

相反,文件程序的最低和理想的内存需求。您可以考虑在安装时检查系统是否满足这些要求,但是作为软件提供商的责任已经结束,并且这不是适合或欢迎您超越责任的范畴。