大家好,我想询问一个现象。我的java应用运行的很慢,但是我的cpu的占用率才46%。应该不会出现内存的问题,我的内存是两个G的。我也用了内存的检测软件,我的内存还没有用到一个G。我想问问这是为什么呢?好像我的系统把JAVA程序封印了一样。

解决方案 »

  1.   

    《深入JAVA虚拟机》一书中介绍,每一个JAVA应用程序都创建一个虚拟机实例,并运行在这个实例里,通过给虚拟机实例配置xmx改变堆内存大小.所以你可以看一下这本书,对你的虚拟机进行一些配置上的改变,看一看会不会快一些。
    我感觉应该与你写的程序没关,除非你老写死循环,或者老是不关打开的资源,如IO流,SOCKET,数据库连接,当然这些是占内存的,所以不是你上面说的情况,所以就应该是虚拟机的问题了。去试着改变一下虚拟机的配置吧
      

  2.   

    这个和你的程序是否使用了多线程,流操作是否得当等有关系,还与你使用的系统有关系。如果是Vista就在正常不过了
      

  3.   

    CPU利用率低, 当然就是因为有I/O等待了````,  线程阻塞时间长了, CPU利用率自然就上不去了```
      

  4.   

    首先,我并没有做I/O操作和使用一些互斥的资源。其次,我的却是是双核的cpu。
      

  5.   

    大哥,那个程序是用tibco写的。因此没有办法粘贴处来。
    我也想呀。同样的程序在其他机器上都可以运行,到了我的机器和服务器上做压力测试,cpu只能用到60%就上不去了。
      

  6.   

    java是解释执行的,加上垃圾回收机制.等等...导致慢是在所难免的..至于你的问题 ...不太清楚应该慢到可以接受的地步吧