关于JVM的优化01(CPU篇)

  关于JVM的优化,诗东本人理解是用最少的资源做更多的活,换句话来说就是资源的优化,对JVM调优这东西的理解,无论对我们真正需要动到JVM进行调优时候,还是我们平时的开发都有指导性意义。

  下面通过不同的场景来演示一些JVM优化方面的内容。

  某一天领导叫我在系统中添加一个定时发推送到用户手机的功能,对于自己现在用的系统,我知道已经有了发推送的功能,但是怎么用定时功能呢?

  方案一

  本系统中有集成了redis数据库,其实我可以这么做,写一个死循环,不断地访问redis,然后根据redis数据库返回的时间值,到时间就做相应操作,那么就实现了所谓的定时。

就是这里多个时间判断而已。

 方案二

  集合现成的框架,如Quartz,配置好Quartz要执行的时间和内容。让其到时间就开始执行相应的操作。

 这两种方案都可以达到我想要的目的,如果你对公司和你的领导不爽,领导又不会写代码,只要见到达到目的就可以(能交差),其实我可以选择较为简单的实现方式。这两种方案我都在JVM优化的角度对比过,发现法案二优于方案一,只是实现起来相对麻烦点,因为写条线程,然后进行死循环这类操作,我根本不用上网找资料,下面演示一下对比过程。

 

   首先打开本地的jvisualvm(我在本地测试)。

  先进行方案一死循环的测试

 

 

上面的图片,一个是讲CPU的,一个是讲内存的。显然,首先从CPU的使用角度去分析,死循环消耗的CPU资源是12%左右,就是你开一条线程,不断进行死循环操作,要消耗12%的CPU资源。右图是内存的消耗,就是最多25MB左右内存消耗,才能维持这条线程

   

现在进行方案二测试

 

这里面意思是上图时间会执行myJob2这个操作。

 

 

 

  这里有了很清晰的对比,内存使用情况差不多,但是CPU使用情况完全将方案一吊起来打

 

 想要实现同样的功能,一个CPU使用达到12%,一个CPU使用只有0.1%。这里好像同样的工种,建国初期和现在工资的对比这样的差别。

 下一期我会说一下关于GC日志方面,怎么指导我们进行在程序开发方面的引导作用,敬请期待!如果你觉得文章有硬货,就登陆www.nedsoft.cn 进行继续阅读吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值