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

有那些猎头做单的网站太原晋民网站建设公司

有那些猎头做单的网站,太原晋民网站建设公司,下载app至手机,遵义网站0、问题代码#xff1a; 代码问题其实很明显#xff0c;但是这里主要是为了练习如何使用工具进行分析 所以最好先不要看代码#xff0c;假装不知道程序逻辑#xff0c;而是先通过工具去分析#xff0c;再结合分析数据去看代码#xff0c;从而推出问题点在哪 import jav…0、问题代码 代码问题其实很明显但是这里主要是为了练习如何使用工具进行分析 所以最好先不要看代码假装不知道程序逻辑而是先通过工具去分析再结合分析数据去看代码从而推出问题点在哪 import java.util.ArrayList; import java.util.List;public class PerfTest {public static void main(String[] args) {//这里随机器的配置不同可以适当把线程数量改大一点for (int i 0; i 4; i) {int index i;new Thread(() - {while (true) {for (int k 0; k 10; k) {ListString list new ArrayList();String str index;for (int j 0; j 10000; j) {str aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaj;}list.add(str);System.out.println(index_k);try {Thread.sleep(10);} catch (InterruptedException e) {throw new RuntimeException(e);}}try {Thread.sleep(10);} catch (InterruptedException e) {throw new RuntimeException(e);}}}).start();}} } 运行 javac PerfTest.java java -Xmx100m PerfTest通过jps命令找到PerfTest进程pid top命令观察进程cpu使用情况 可以看到cpu使用超过400% 1、使用async-profiler进行分析 GitHub地址https://github.com/async-profiler/async-profiler wget https://github.com/jvm-profiling-tools/async-profiler/releases/download/v2.9/async-profiler-2.9-linux-x64.tar.gz tar zxvf async-profiler-2.9-linux-x64.tar.gz cd async-profiler-2.9-linux-x64 ./profiler.sh -d 30 -f /tmp/flamegraph.html pid把生成的flamegraph.html导出到本地用浏览器打开如下图 可以看出大部分cpu消耗都是在GC上 2、使用arthas分析 GitHub地址https://github.com/alibaba/arthas curl -O https://arthas.aliyun.com/arthas-boot.jar java -jar arthas-boot.jar进入arthasshell后使用thread命令 也可以看出GC线程消耗了大量的CPU 把线程数改成20之后效果更明显 直接使用jstat -gcutil pid命令也能看出频繁的触发gull gc 3、代码优化 这里代码问题其实已经很明显了是一个经典的String做字符串拼接导致的性能问题直接用String做字符串拼接会产生大量不必要的String对象导致频繁GC。 改为使用StringBuilder就可以大大缓解了 优化后的代码 import java.util.ArrayList; import java.util.List;public class PerfTest2 {public static void main(String[] args) {for (int i 0; i 4; i) {int index i;new Thread(() - {while (true) {for (int k 0; k 10; k) {ListString list new ArrayList();StringBuilder str new StringBuilder(50*10000);str.append(index);for (int j 0; j 10000; j) {str.append(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaj);}list.add(str.toString());System.out.println(index_k);try {Thread.sleep(10);} catch (InterruptedException e) {throw new RuntimeException(e);}}try {Thread.sleep(10);} catch (InterruptedException e) {throw new RuntimeException(e);}}}).start();}} }再次运行 javac PerfTest2.java java -Xmx100m PerfTest2可以看到一个很明显的变化就是控制台的输出速度快了很多而且cpu占用也没那么高了说明优化起到了很大的效果 然后再进一步测试把线程数从4个改为20个 发现这时候cpu也开始变高GC也变得很频繁 猜测是因为jvm分配的内存较小导致内存紧张频繁触发full gc(这里也可以用工具进行内存分析但是懒得折腾了后面有空再补充如果有的话0.0) 通过java -Xmx1000m PerfTest2把内存调大十倍再观察cpu和gc都降下来了 这里的操作和前面类似就不再贴命令和截图了~~ 另外这里也延申一个问题前面有问题的程序也把内存调大十倍观察这时候再观察 1、cpu还是居高不下 2、gc大大缓解 3、程序执行性能得到提升,但还是很慢 这时候也只能结合arthas或者async profiler工具定位到cpu占用高的线程结合阅读代码进行分析了
http://www.w-s-a.com/news/168574/

相关文章:

  • 中国建筑装饰网官网企业网站设计优化公司
  • 南海建设工程交易中心网站c2c交易平台有哪些?
  • 有没有专业做网站架构图的软件番禺建设网站哪个好
  • 建立网站第一步整站seo优化公司
  • php网站开发文章管理系统wordpress 评论 顶踩 心 插件
  • 网站做百度收录的意义html网页设计代码作业代码
  • 网站推广怎么做 知乎衡水做网站开发的
  • 重庆忠县网站建设报价网页构建
  • 怎么自己做单页网站怎么在阿里做网站
  • 公司网站重新备案做电商没几个能赚钱的
  • 网站开发我们都能解决怎样做网站吸引客户
  • 网站首页图片切换代码wordpress minfy
  • 什么程序做网站收录好企业搭建网站的必要性
  • 建设网站主题建站必须要域名吗
  • 网站建设海报设计购物平台网站建设框架
  • 湖北在线网站建设建一个网站迈年
  • 上班自己花钱做的网站网站首页的动态怎么做
  • 台州网站建设哪家便宜沧州最新消息今天
  • 建设网站 请示 报告wordpress会员制
  • 青岛建网站人做网站怎么赚钱广告
  • 网站建设哪家好公司跨境电商展会2023
  • 设计大神云集的网站是南通市 网站设计
  • 心理咨询网站模板企业画册封面设计
  • 做网站 南京网站建设的重难点分析
  • 深圳做网站980移动网站开发语言
  • 网站评论怎么做seo关键词优化方法
  • 市级部门网站建设自评报告网站优化文章怎么做
  • 可不可以异地建设网站学做网站培训班要多少钱
  • 茌平网站建设公司免费的云服务器有哪些
  • 手机网站单页面铜陵网站制作公司