• 学习元性能测试与分析

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • 1.代码
    1. <%  
    2.         double total = (Runtime.getRuntime().totalMemory())  
    3.                 / (1024.0 * 1024);  
    4.         double max = (Runtime.getRuntime().maxMemory()) / (1024.0 * 1024);  
    5.         double free = (Runtime.getRuntime().freeMemory()) / (1024.0 * 1024);  
    6.         out.println("Java 虚拟机试图使用的最大内存量(当前JVM的最大可用内存)maxMemory(): " + max  
    7.                 + "MB<br/>");  
    8.         out.println("Java 虚拟机中的内存总量(当前JVM占用的内存总数)totalMemory(): " + total  
    9.                 + "MB<br/>");  
    10.         out.println("Java 虚拟机中的空闲内存量(当前JVM空闲内存)freeMemory(): " + free  
    11.                 + "MB<br/>");  
    12.         out.println("因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,<br/>"  
    13.                 + "而JVM实际可用内存并不等于freeMemory(),而应该等于 maxMemory()-totalMemory()+freeMemory()。<br/>");  
    14.         out.println("JVM实际可用内存: " + (max - total + free) + "MB<br/>");  
    15.         out.println("jspcn");  
    16.     %>  
    • 用loadrunner模拟300~500人访问
    • 查看这个jsp页面程序,情况如下

    Java 虚拟机试图使用的最大内存量(当前JVM的最大可用内存)maxMemory(): 1820.5MB
    Java 虚拟机中的内存总量(当前JVM占用的内存总数)totalMemory(): 1820.5MB
    Java 虚拟机中的空闲内存量(当前JVM空闲内存)freeMemory(): 230.25645446777344MB
    因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,
    而JVM实际可用内存并不等于freeMemory(),而应该等于 maxMemory()-totalMemory()+freeMemory()。
    JVM实际可用内存: 230.25645446777344MB
    jspcn

    300人上线后程序无响应

    • 查看mysql运行情况

    另外写程序读取mysql,测试发现正常

    • 初步估计

    tomcat运行内存不足导致用户数一多,系统无响应。

    • 标签:
    • jvm
    • 虚拟机
    • 当前
    • 学习元性能测试与分析
    • 可用内存
    • freememory
    • 内存
    • 程序
    • 情况
    • 1.
    • out.println
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部