如何快速耗尽RAM来测试垃圾回收?

时间:2009-11-10 18:51:31

标签: windows memory-management

Windows Server 2008.如何快速耗尽RAM以便在我的应用中引入GC。如果有一种方法可以在不需要Visual Studio或安装语言运行库的情况下完成它,那就很好了。

编辑:我不想写一个应用程序,然后将其复制到服务器上。我正在寻找一种快速完成它的方法,而无需编写需要IDE或安装运行时/编译器的应用程序。 也许是PowerShell或批处理脚本? ...

3 个答案:

答案 0 :(得分:3)

我不认为在你的过程之外使用RAM肯定会触发GC。

如果我正确理解你的问题,你有一个用某种未知语言编写的程序Foo.exe,在某个未知的运行时运行(你是不是因某些原因发布了详细信息,或者你只是不知道? ),并且您希望尝试获取该程序的运行时以触发垃圾回收。但是,您希望通过使用foo.exe的外部来实现此目的。

您可以通过创建一个简单的批处理文件来完成此操作,该文件只启动了一百个IE或Word副本或您想要的任何程序。但是,我认为这不会做你想做的事情。如果您的进程已经分配了一定数量的内存,那么它不一定会释放内存或触发GC,因为正在启动其他进程。它可能会分页到磁盘,或者可能强制其他程序寻呼到磁盘。但并非所有垃圾收集器都相似,所以如果没有更多细节我们就无法提供帮助。我很确定一些VM一旦分配了它就永远不会回馈内存,即使在GC之后也是如此。

答案 1 :(得分:-1)

您可以在Virtual Box之类的虚拟机中运行程序,在此虚拟机中指定客户机操作系统的内存上限。

我很难想象这样做的场景。你能提供更多关于这个问题的信息吗?

答案 2 :(得分:-1)

如果您使用的是Java,则可以使用Xmx指定最大内存量。搜索JVM内存设置