java自由内存使用
我正在使用java构建一个套接字服务器 我正在记录服务器运行期间发生的许多操作, 在每个日志行旁边,我正在使用以下命令写入JVM中当前的可用内存:java自由内存使用,java,memory,jvm,Java,Memory,Jvm,我正在使用java构建一个套接字服务器 我正在记录服务器运行期间发生的许多操作, 在每个日志行旁边,我正在使用以下命令写入JVM中当前的可用内存: Runtime.getRuntime().freeMemory() 正如我在日志中看到的,我没有很多可用内存(大约14-15MB) 我在具有根访问权限的freeBSD服务器上运行此套接字服务器 我真的很想调整分配给JVM的内存,但我真的不知道如何调整,而且我对freeBSD和linux一般来说都是新手。你关于内存在Java中如何工作(特别是)的假设
Runtime.getRuntime().freeMemory()
正如我在日志中看到的,我没有很多可用内存(大约14-15MB)
我在具有根访问权限的freeBSD服务器上运行此套接字服务器
我真的很想调整分配给JVM的内存,但我真的不知道如何调整,而且我对freeBSD和linux一般来说都是新手。你关于内存在Java中如何工作(特别是)的假设是有缺陷的
Runtime.getRuntime().freemory()
,将-Xms
和-Xmx
命令行参数分配给java
。或者在某些启动脚本中,如果您正在使用应用程序服务器
为什么你想做的是浪费时间
看看这个为什么
Java中的垃圾收集器(控制空闲内存)并没有尽可能多地保持空闲内存,而是在性能和响应性之间进行了平衡。它只按需释放内存,拥有最大可用内存没有好处,尝试这样做有很多缺点
这会导致不再被引用的对象在“使用内存”时挂起,直到它们占用的内存实际需要为止。这实际上是最佳的,因为过早地删除它们会导致运行代码的性能下降
只有在需要释放内存时才快速删除它们,这是垃圾收集器的目标,而不是试图保持尽可能多的内存可用
您应该永远不必在正确实现的Java程序中调用System.gc()
Java热点包括三种不同的收集器。连载
集合对GC使用单个线程,最适合于单个线程
数据集小于100 MB的处理器计算机。这个
并行执行并行的次要集合。它非常适合
适用于运行在多线程或
多处理器硬件。并发收集器已经过优化
响应时间较长时,垃圾回收暂停较短
比吞吐量更重要。此模式通常不提供任何
单核机器的优势
避免OutOfMemory异常
-Xmx
设置为您在服务器上能够承受的最大设置。将-Xms
设置为您认为标称内存块的最小大小。太小比太大更糟糕关于Java中内存如何工作(特别是)的假设是有缺陷的
Runtime.getRuntime().freemory()
,将-Xms
和-Xmx
命令行参数分配给java
。或者在某些启动脚本中,如果您正在使用应用程序服务器
为什么你想做的是浪费时间
看看这个为什么
Java中的垃圾收集器(控制空闲内存)并没有尽可能多地保持空闲内存,而是在性能和响应性之间进行了平衡。它只按需释放内存,拥有最大可用内存没有好处,尝试这样做有很多缺点
这会导致不再被引用的对象在“使用内存”时挂起,直到它们占用的内存实际需要为止。这实际上是最佳的,因为过早地删除它们会导致运行代码的性能下降
只有在需要释放内存时才快速删除它们,这是垃圾收集器的目标,而不是试图保持尽可能多的内存可用
您应该永远不必在正确实现的Java程序中调用System.gc()
Java热点包括三种不同的收集器。连载
集合对GC使用单个线程,最适合于单个线程
数据集小于100 MB的处理器计算机。这个
并行执行并行的次要集合。它非常适合
适用于运行在多线程或
多处理器硬件。并发收集器已经过优化
响应时间较长时,垃圾回收暂停较短
比吞吐量更重要。此模式通常不提供任何
单核机器的优势
避免OutOfMemory异常
-Xmx
设置为您在服务器上能够承受的最大设置。将-Xms
设置为您认为标称内存块的最小大小。太小比太大更糟糕您希望通过“调整分配给JVM的内存”来实现什么?您可以使用
-Xms
和-Xmx
开关来指定要为程序分配多少堆内存。我试图避免内存不足。。将来..就像Jarrod说的,你可能会对垃圾收集有一些疑问。[这里]是sun的一份不错的白皮书,你应该读一下。[此处]:您希望通过“调整分配给JVM的内存”实现的目标的可能重复?您可以使用-Xms
和-Xmx
开关来指定要为您的程序分配多少堆内存。我试图避免内存不足。。将来..就像Jarrod说的,你可能会对垃圾收集有一些疑问。[这里]是sun的一份不错的白皮书,你应该读一下。[这里]:可能重复的,所以你是说垃圾收集器会在需要时为我分配更多内存(如果可用)?我实际上根本没有试图分配任何内存。我试图理解的是,一般来说,我的系统给java提供了多少内存,或者换句话说,什么