当前位置: 首页 > news >正文

珠海网站推广价格网络推广服务合同范本

珠海网站推广价格,网络推广服务合同范本,国务院政府网站发展建设的意见,建设企业网银如何对账如果想观察JVM进程占用的堆内存,可以通过命令工具jmap或者可视化工具jvisualvm.exe。JVM这些启动参数都拥有默认值,如果想了解JVM的内存分配策略,最好手动设置这些启动参数。再通过JDK提供的工具的统计结果,进行对比,就…

如果想观察JVM进程占用的堆内存,可以通过命令工具jmap或者可视化工具jvisualvm.exe。JVM这些启动参数都拥有默认值,如果想了解JVM的内存分配策略,最好手动设置这些启动参数。再通过JDK提供的工具的统计结果,进行对比,就比较容易理解这些内存分配的理论知识。运行环境是win7 32位操作系统,JDK1.7.0_60版本。

测试代码和JVM启动参数如下:

[java] view plain copy
  1. public class Test  
  2. {  
  3.     public static void main(String[] args)  
  4.     {  
  5.         int a = 0;  
  6.         while (true)  
  7.         {  
  8.             a++;  
  9.         }  
  10.     }  
  11. }  
[plain] view plain copy
  1. -Xms200M  -Xmx200M -XX:NewSize=100M -Xmn100M -XX:SurvivorRatio=8   
  2. -XX:OldSize=60M -XX:PermSize=50M -XX:MaxPermSize=50M  

 

运行上述代码,通过jps命令获取到进程pid,然后通过jmap -heap pid就可以查看内存分配和使用情况。

[plain] view plain copy
  1. >jmap -heap 8912  
  2. Attaching to process ID 8912, please wait...  
  3. Debugger attached successfully.  
  4. Client compiler detected.  
  5. JVM version is 24.60-b09  
  6.   
  7. using thread-local object allocation.  
  8. Mark Sweep Compact GC  
  9.   
  10. Heap Configuration:  
  11.    MinHeapFreeRatio = 40  
  12.    MaxHeapFreeRatio = 70  
  13.    MaxHeapSize      = 209715200 (200.0MB)  
  14.    NewSize          = 104857600 (100.0MB)  
  15.    MaxNewSize       = 104857600 (100.0MB)  
  16.    OldSize          = 62914560 (60.0MB)  
  17.    NewRatio         = 3  
  18.    SurvivorRatio    = 8  
  19.    PermSize         = 52428800 (50.0MB)  
  20.    MaxPermSize      = 52428800 (50.0MB)  

这里显示的堆配置参数,都可以通过JVM启动参数来设置。下面来解释下几个重要参数的含义:


-Xms 和 -Xmx (-XX:InitialHeapSize 和 -XX:MaxHeapSize):指定JVM初始占用的内存和最大堆内存。JVM也是一个软件,也必须要获取本机的物理内

存,然后JVM会负责管理向操作系统申请到的内存资源。JVM启动的时候会向操作系统申请 -Xms 设置的内存,JVM启动后运行一段时间,如果发现内存空间

不足,会再次向操作系统申请内存。JVM能够获取到的最大堆内存是-Xmx设置的值。


-XX:NewSize 和 -Xmn(-XX:MaxNewSize):指定JVM启动时分配的新生代内存和新生代最大内存。


-XX:SurvivorRatio:设置新生代中1个Eden区与1个Survivor区的大小比值。在hotspot虚拟机中,新生代 = 1个Eden + 2个Survivor。如果新生代内存是  

10M,SurvivorRatio=8,那么Eden区占8M,2个Survivor区各占1M。


-XX:NewRatio:指定老年代/新生代的堆内存比例。在hotspot虚拟机中,堆内存 = 新生代 + 老年代。如果-XX:NewRatio=4表示年轻代与年老代所占比值为1:4,年轻代占整个堆内存的1/5。在设置了-XX:MaxNewSize的情况下,-XX:NewRatio的值会被忽略,老年代的内存=堆内存 - 新生代内存。老年代的最大内存 = 堆内存 - 新生代 最大内存。


-XX:OldSize:设置JVM启动分配的老年代内存大小,类似于新生代内存的初始大小-XX:NewSize。


 -XX:PermSize 和 -XX:MaxPermSize:指定JVM中的永久代(方法区)的大小。可以看到:永久代不属于堆内存,堆内存只包含新生代和老年代


可以发现:堆内存、新生代内存、老年代内存、永久代内存,都有一个初始内存,还有一个最大内存。下面以老年代的初始内存和最大内存为例,看下内存变化的效果,其他的应该类似。测试代码如下:

[java] view plain copy
  1. public class TurnedTest  
  2. {  
  3.     private static List<String> list = new ArrayList<String>();  
  4.   
  5.     public static void main(String[] args)  
  6.     {  
  7.         int a = 0;  
  8.         while (true)  
  9.         {  
  10.             a++;  
  11.   
  12.             list.add("demo");  
  13.         }  
  14.   
  15.     }  
  16. }  
显然这个程序存在内存泄露,最终会占满整个堆内存,抛出OOM。为了看清楚这个演变的过程,我们在while循环中添加一个断点,设置breakpoint properties中的"hit count"为100000,以debug模式运行上面的程序,然后使用jmap观察内存占用情况。

[plain] view plain copy
  1. tenured generation:  
  2. capacity = 62914560 (60.0MB)  
  3. used     = 0 (0.0MB)  
  4. free     = 62914560 (60.0MB)  
  5. 0.0% used  
  6.   
  7.   
  8. tenured generation:  
  9. capacity = 62914560 (60.0MB)  
  10. used     = 16409080 (15.648918151855469MB)  
  11. free     = 46505480 (44.35108184814453MB)  
  12. 26.08153025309245% used  
  13.   
  14. tenured generation:  
  15. capacity = 62914560 (60.0MB)  
  16. used     = 53329496 (50.858970642089844MB)  
  17. free     = 9585064 (9.141029357910156MB)  
  18. 84.76495107014973% used  
  19.   
  20. tenured generation:  
  21. capacity = 104857600 (100.0MB)  
  22. used     = 84217880 (80.3164291381836MB)  
  23. free     = 20639720 (19.683570861816406MB)  
  24. 80.3164291381836% used  

可以发现老年代内存从最开始的60M,扩大到最大值100M。


ref:

https://blog.csdn.net/aitangyong/article/details/39344443

http://www.lbrq.cn/news/2808739.html

相关文章:

  • 社保网站上怎么做减员视频号视频下载助手app
  • 制作网站赚钱不最简单的网页制作
  • 做导购网站多少钱网址域名ip查询
  • 苏州网站建设制作网站建设方案书模板
  • 手工艺品外贸公司网站建设方案简易的旅游网页制作
  • 邯郸互联网公司seo网站推广实例
  • 洪泽区做网站aso排名优化
  • 做网站哪家公司最好综合查询
  • 天津网站推广宣传重庆网站优化排名推广
  • 嘉兴自助建网站竞价推广和信息流推广
  • 电商类网站建设需要多少钱seo技术培训江门
  • vue做的网站域名汇总百度极速版客服电话
  • WordPress显示403网站优化价格
  • 上海人才网官网招app优化推广
  • 山东最新通知今天山东公司网站推广优化
  • 做一般的公司门户网站投资额企业网站seo案例分析
  • 福州网站建设设计北京seo技术
  • 网店装修网站百度公司招聘信息
  • 网站建设行业增长率哈尔滨网络公司
  • 找大学生做家教去哪个网站找好新品推广计划与方案
  • 深圳网站设计权威乐云践新目前引流最好的平台
  • 太原网站建设费用seo优化的优点
  • 门户网站开发过程视频外贸快车
  • 建设银行网站个人客户seo优化网站优化排名
  • 医院网站后台模板seo有名气的优化公司
  • 南京建设工程质量监督站网站做网络推广怎么收费
  • 可在哪些网站做链接dw如何制作网页
  • 设计干货很多的网站优化疫情政策
  • 网站做301好不好百度收录入口在哪里查询
  • 商业网站建设教程乐陵seo优化
  • 【Dubbo】高性能的 RPC
  • 开源 python 应用 开发(十一)短语音转文本
  • Logstash——输出(Output)
  • 从源码中学习Java面向对象的多态
  • Web 安全之 HTTP 响应截断攻击详解
  • Go语言中的迭代器模式与安全访问实践