雄关漫道真如铁,而今迈步从头越。
全部博文(348)
发布时间:2016-10-14 09:50:22
目前主要的JDK有Oracle(原SUN)、HP、IBM,各厂商JDK版本信息参考如下,以便于安装部署时确认JDK类型和版本。 ......【阅读全文】
发布时间:2016-10-14 08:47:48
垃圾回收的悖论,所谓“成也萧何败萧何”。Java的垃圾回收确实带来了很多好处,为开发带来了便利。但是在一些高性能、高并发的情况下,垃圾回收确成为了制约Java应用的瓶颈。目前JDK的垃圾回收算法,始终无法解决垃圾回收时的暂停问题,因为这个暂停严重影响了程序的相应时间,造成拥塞或堆积。这也是后续JDK增加G1算法的一个重要原因。......【阅读全文】
发布时间:2016-10-14 08:37:17
在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m。从表面上,物理内存应该是足够使用的;但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用了),如下图所示。同时,由于SWAP和GC同时发生会致使JVM严重卡顿,所以我们要追问:内存究竟去哪儿了?......【阅读全文】
发布时间:2016-10-14 08:23:02
年轻代的设置很关键,JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。......【阅读全文】
发布时间:2016-10-13 14:43:37
在做java开发时经常会遇到内存溢出的问题,比如说OutOfMemoryError如:java.lang.OutOfMemoryError: PermGen space或者java.lang.OutOfMemoryError: Java heap space等。这是个让开发人员很痛苦、也很纠结的问题,因为我们有时不知道什么样的操作导致了这种问题的发生。所以我们不得不通过不断的优化自己的代码结构,重构了一次又一次。虽然说不断的重构自己的代码对公对私都是一件非常好的事,但是有时我们会发现有些时候不单单是通过重构自身的代码就能够解决这样的问题,因为也可能是由于我们对java虚拟机运行时的内存分配的不得当导致了内存溢出现象的不断发生。为了解决这一问题,java开发团队提供了一个用户自定义的方式按需配置java虚拟机运行时的所需的内存—通过参数配置的形式实现参数分配自定义化。......【阅读全文】