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

东莞通app怎么用抖音seo工具

东莞通app怎么用,抖音seo工具,测网站打开的速度的网址,平面设计师个人网站这里简单介绍一下各种调优用到的工具 一#xff0c;环境准备 首先我们需要准备好Java环境#xff0c;和win上的jdk环境#xff08;图形化界面如jconsole只有jdk中有#xff09;。 有这样一个类Prolem#xff0c;每个线程都会带来100个垃圾对象#xff0c;线程new完100…这里简单介绍一下各种调优用到的工具 一环境准备 首先我们需要准备好Java环境和win上的jdk环境图形化界面如jconsole只有jdk中有。 有这样一个类Prolem每个线程都会带来100个垃圾对象线程new完100个垃圾对象基本就结束了等待3秒后重新开始制造新的垃圾对象而线程池中有50个这样的线程。毫无疑问这样会造成JVM中内存的占用的彪高。 import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit;/*** 从数据库中读取信用数据套用模型并把结果进行记录和传输*/public class Problem {private static class CardInfo {BigDecimal price new BigDecimal(0.0);String name 张三;int age 5;Date birthdate new Date();public void m() {}}private static ScheduledThreadPoolExecutor executor new ScheduledThreadPoolExecutor(50,new ThreadPoolExecutor.DiscardOldestPolicy());public static void main(String[] args) throws Exception {executor.setMaximumPoolSize(50);for (;;){modelFit();Thread.sleep(100);}}private static void modelFit(){ListCardInfo taskList getAllCardInfo();taskList.forEach(info - {// do somethingexecutor.scheduleWithFixedDelay(() - {//do sth with infoinfo.m();}, 2, 3, TimeUnit.SECONDS);});}private static ListCardInfo getAllCardInfo(){ListCardInfo taskList new ArrayList();for (int i 0; i 100; i) {CardInfo ci new CardInfo();taskList.add(ci);}return taskList;} } 将这个类复制到Linux中javac Problem编译Problem类到当前文件夹下然后使用java -Xms20M -Xmx20M -XX:PrintGC -XX:PrintGCDetails Problem指定堆大小为20M不变这样使得堆GC频率会很频繁-XX:PrintGCDetails开启GC细节日志直接启动Problem中的主方法。 二主要工具 在收到报警后如何检查问题出在哪里呢 top命令查看本台Linux机器中资源占用情况可以看到CPU占满的是pid为27282的Java进程。内存没有显示占用多少是因为我指定了堆内存为20M其实内存此时已经占用满了。 top -Hp Pid 命令top -Hp加上Java进程的pid展示Java内部线程的资源占用情况。在这个栗子中可以看到cpu很高是因为垃圾占用一直很高于是GC线程一直工作。 GC日志这里的GC日志是我们直接使用-XX:PrintGCDetails在前台打印的日志生产看JVM日志要去分析jmap的dump文件。可以看到先是YGC回收速度小于垃圾对象制造速度于是很快就变成了Full GC后期甚至还会堆内存溢出。 jps列出Java进程的进程ID和主类名称。这个命令通常用于查看正在运行的Java进程以便进行监控或管理。通过这个命令查看Problem类的进程的pid相比top快速便捷方便后面使用jmap等工具。 jstack定位线程堆栈信息看到线程在等待 jmap比较重要的分析工具。 jmap -histo pid | head numbermap - histo命令用于生成Java堆内存中实例对象数量及占用内存的直方图显示堆中各个对象类型的数量和大小。后面跟上管道符和head命令展示占用靠前多少的对象。 jmap -dump使用jmap去dump堆栈信息。分析dump文件如果是上G的文件直接用vim太Low了效率也低。。 分析dump文件的工具eclipse有MAT免费idea有JProfiler插件收费499美元好货不便宜啊。。此外也可以使用jvirsualvm来进行dump文件分析jhat也可以但是比较古老。 jmap -heap pid打印堆内存信息。 [root192 code]# jmap -heap 26983 Attaching to process ID 26983, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.361-b09using thread-local object allocation. Parallel GC with 4 thread(s)Heap Configuration:MinHeapFreeRatio 0MaxHeapFreeRatio 100MaxHeapSize 209715200 (200.0MB)NewSize 69730304 (66.5MB)MaxNewSize 69730304 (66.5MB)OldSize 139984896 (133.5MB)NewRatio 2SurvivorRatio 8MetaspaceSize 16777216 (16.0MB)CompressedClassSpaceSize 1073741824 (1024.0MB)MaxMetaspaceSize 4294963200 (4095.99609375MB)G1HeapRegionSize 0 (0.0MB)Heap Usage: PS Young Generation Eden Space:capacity 52428800 (50.0MB)used 18120048 (17.280624389648438MB)free 34308752 (32.71937561035156MB)34.561248779296875% used From Space:capacity 8650752 (8.25MB)used 8639984 (8.239730834960938MB)free 10768 (0.0102691650390625MB)99.87552527225378% used To Space:capacity 8650752 (8.25MB)used 0 (0.0MB)free 8650752 (8.25MB)0.0% used PS Old Generationcapacity 139984896 (133.5MB)used 14180352 (13.5234375MB)free 125804544 (119.9765625MB)10.129915730337078% used1230 interned Strings occupying 70952 bytes. jmap -clstats pid打印Java进程的元数据信息也就是方法区的信息 arthas阿里的开源工具用attach的方式监控相当于对流进行代理而不是图形化界面实时命令因此arthas对系统的负荷很小命令行界面也比较友好。 安装arthas[3]安装很简单直接下载jar包后启动即可。 curl -O https://arthas.aliyun.com/arthas-boot.jar java -jar arthas-boot.jar回车后arthas会显示检测到的Java进程按顺序从1开始排列我们输入1选择把arthas挂到第一个进程上。看到下面的ARTHAS图形启动成功。 arthas启动后在启动arthas之前我将Java进程停掉堆内存指定为200M并重新启动不然20M容易导致arthas挂失败。可以看到Linux用户从root变为了arthasarthas用户可以使用如下命令。 jvm类似于jinfo的效果显示jvm的各种参数信息 dashboard监控大盘可以看到线程、内存的各种状态 thread只查看进程 jad反编译定位动态代理生成类的问题、版本问题等。 redefine热替换可以在不用重新部署项目的情况下将代码替换掉。但是有一些限制只能改方法实现方法已经运行完成不能改方法名 不能改属性。 比如我们有2个类如下 import java.io.IOException;public class TestRedefine {public static void main(String[] args) throws IOException {while (true){System.in.read();new RedefineNode().out();}}}public class RedefineNode {public static void out(){System.out.println(1);}}将其启动后输入字母只能得到输出1. [root192 code]# java TestRedefine a 1 1 a 1 1 s 1 1 现在我们直接vim类RedefineNode 将1换成2并且javac RedefineNode.java。编译成class文件。最终在arthas中将其热替换再用反编译查看代码发现已经换成了2. 测试输入输出输出变成了2热替换成功。 [root192 code]# java TestRedefine a 1 1 a 1 1 s 1 1 a 2 2 d 2 2 s 2 2 heapdump /root/gc2024051401.hprofarthas对jvm进行dump格式要为hprof。 配合jdk工具jhat对dump文件进行分析 Linux ip7000端口打开jhat网址 jhat的各项是按照字母顺序排列的直接拉到最下方others才是有用的。 如jhat统计类的实例对象数量 OQL通过语句查询想要的结果 或者也可以把dump文件拿出来用jvirsualvm的装入载入dump文件来分析。比如这里我用finalshell将dump文件下载后使用jvrisualvm分析。 下载在桌面自动创建的文件夹中将其装入查看dump文件中的信息可以看到哪个对象是最多的。 三作用不大的工具 jinfo pid可以看到一些java进程的配置信息作用不大 jstat -gc pid。每500毫秒打印一次gc日志但是信息很抽象比较晦涩 jconsole下图能看到一些类似jinfo的信息。jconsole等调试工具在jdk中包含在win中远程连接Linx即可但是远程连接图形化界面相当于实时使用命令监控对线上系统有很大压力因此图形化界面如jconsole、jvirsualvm不建议线上使用。jconsole在连接时有一些注意事项【注1】。 能看到内存在节节升高回收完短暂的掉下去一点然后又升高但是没啥用分析不出来问题 jvirsualvm也是jdk中自带。使用时也是有一些注意事项放到最后【注2】。 可以看到jvirsualvm终于比jconsole好用一些了能够看到内存中哪些对象最多但是如果业务代码多且复杂可能无法借此分析出结果。不过总归比jconsole好一些同样jvirsualvm不推荐线上使用。 中止Linux上的jstatd就可以终止jvirsualvm的可视化。 【注1】 连接jconsole的Java进程在启动时需要加上以下参数以支持JMX协议。ip换成Linux的port不用换是JMX协议的远程通讯端口。 java -Djava.rmi.server.hostname192.168.18.128 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port11111 -Dcom.sun.management.jmxremote.authenticatefalse -Dcom.sun.management.jmxremote.sslfalse Problem自己的虚拟机如果防火墙或者iptables开启可以关闭。生产上开放出端口即可。 然后在win上的jconsole上连接192.168.18.128:11111。 【注2】 Linux上进入JAVA_HOME的bin目录下 vi jstatd.all.policy 在其中保存如下内容 grant codebase file:${java.home}/../lib/tools.jar {permission java.security.AllPermission; };启动jstatd开启jstatd后此时就可以用win的jvirsualvm连接Java进程了 jstatd -J-Djava.security.policyD:\tools.policy参考文章 [1]使用jvisualvm的jstatd方式远程监控Java程序 [2]jstatd 启动报错解决Could not create remote object [3]arthas/README_CN.md
http://www.zqtcl.cn/news/418130/

相关文章:

  • jsp做的婚恋网站在谷歌上做英文网站
  • 北京教育学会网站建设昆明seo公司网站
  • 免费域名试用注册网站google搜索关键词热度
  • 温州建设小学网站高中资料网站免费
  • 室内设计网站官网大全电子商务网站后台核心管理
  • 网站建设报价图片欣赏福州网站建设报价
  • 网站推广基本方法是文创产品设计稿
  • 厦门网站制作公司推荐作文网投稿网站
  • 网站开发过什么软件杭州cms建站模板下载
  • 做中东服装有什么网站谁能给我个网址
  • 深圳网站建设公司服务平台河北省建设银行网站首页
  • 新密网站网页版微信小程序在哪
  • 长春建一个网站大概要多少钱微信公众号开店流程
  • 网站运营实例django 微信小程序开发教程
  • wordpress 搭网站郑州网站建设华久
  • 网站建设图片尺寸专门做音乐的网站
  • 株洲做网站外贸推广产品
  • 枫叶的网站建设博客企业网站样板制作
  • 织梦网站文章相互调用百度下载老版本
  • pc网站的优势网站建设款属不属于无形资产
  • 网站建设数据安全分析网络全案推广
  • 网站建设哪家好就推 鹏博资讯手机自助建网站
  • 沈阳网站制作招聘网长治网站建设电话
  • 承德网站设计公司余姚做百度网站
  • 阿里云购买网站空间做网站怎么插音乐循环
  • 网站设计时应考虑哪些因素惠州做网站
  • 西安网站搭建的公司网站建设条例
  • 网站建设联系网站改备案信息吗
  • 建设一个看电影的网站唐山网址建站
  • 呼和浩特网站建设价格vs网站开发入门