码迷,mamicode.com
首页 > 其他好文 > 详细

杂谈01

时间:2019-09-25 15:36:46      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:The   垃圾回收机制   优化   0ms   提速   nbsp   啪啪啪   目的   垃圾回收   

感觉好久没有写东西了,于是乎有了这么一篇水文。

 

先总结下最近的学习情况吧。

学习了下Java虚拟机,对虚拟机的概念更加熟悉了。

学习了下Java编程的建议,虽然还没有很好的吸收,但准备肝一波英文版(并不)。

 

想到啥说啥系列:

1.JVM。

  ①个人觉得一个程序就一个JVM,或者说一个main就是一个JVM,然后每个JVM可以设置各种区大小,什么老年代、伊甸园区、FROM,TO区、元空间、堆栈等等。。

    可能具体概念并不能很好的描述出来,但是大概知道程序运行的时候每个区都有啥作用。

  ②JVM学习的目的 主要还是调优,毕竟如果随手写的代码,不用优化也能承受高并发,大量访问的话,就没必要去研究如何提速,提高用户体验的问题。因为如果是200ms的访问速度降到150ms的访问速度,看着降的百分比挺多,但是实际上对用户来说是几乎零感知的。不是说这样的优化没有用,而是这样的优化不是必要,而且很可能会花费很多时间去考虑调优的事情。但一般比较卡的程序可能就是3s以上的卡顿,这是一个临界值吧,再往上用户就会抱怨了(个人感觉3s已经很多了,有的说5s好像,而且3s内我也会抱怨的。。)。这种程序将卡顿降到200ms,那~完美,厉害,啪啪啪~

  ③实际上,写的代码总会出现一些意料之外的问题,程序的卡顿很大的原因会出在GC部分,特别是程序如果频繁fullGC的话。GC导致卡顿的主要原因就是stop the world。酷酷的名字。在我大GC要工作时,世界都要停下来。因为这个停顿,就容易反应到程序上的卡顿。GC的频繁主要就考虑(目前个人所了解)虚拟机所分配的空间是否合理,是不是老年代太小需要频繁扩张导致疯狂fullGC,或者考虑是不是有大量对象并没有被释放。

  ④老年代满了就fullGC,eden区满了minorGC。minorGC的代价比较小,卡顿也不会很明显。据书上说,目前的垃圾回收机制有多线程回收,而且支持边运行边回收。但是我记不太清除咯。

  ⑤JVM还有一部分就是*.class文件,如何编译出来的,如何理解这class文件的意思,文件头CAFEBABE(咖啡宝贝吗。。)。还有类加载器等。。类加载器部分我没有细读,只知道从父加载器干嘛干嘛。。具体忘了。。主要就是保证class文件的正确性,保证不同包的类可以同时加载而且不会混淆。

2.不知道说啥好了。。那就想到再说吧。。(编程建议有点没吸收,一回想脑子一片空白)

杂谈01

标签:The   垃圾回收机制   优化   0ms   提速   nbsp   啪啪啪   目的   垃圾回收   

原文地址:https://www.cnblogs.com/lighter-jh/p/11584521.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!