前言
JVM作为Java进阶的知识,是需要Java程序员不断深度和理解的。
本篇博客介绍JVM调优的工具阿里云的Arthas的使用,安装和使用,命令的使用案例;死锁查询的案例;重新加载一个类信息的案例;调用慢的分析案例。
其他相关的JVM博客文章如下:
- Java进阶(1)——JVM的内存分配 & 反射Class类的类对象 & 创建对象的几种方式 & 类加载(何时进入内存JVM)& 注解 & 反射+注解的案例
- Java进阶(4)——结合类加载JVM的过程理解创建对象的几种方式:new,反射Class,克隆clone(拷贝),序列化反序列化
- Java进阶(垃圾回收GC)——理论篇:JVM内存模型 & 垃圾回收定位清除算法 & JVM中的垃圾回收器
- Java进阶(JVM调优)——JVM调优参数 & JDK自带工具使用 & 内存溢出和死锁问题案例 & GC垃圾回收
系列文章合集如下:
【合集】Java进阶——Java深入学习的笔记汇总 & 再论面向对象、数据结构和算法、JVM底层、多线程、类加载 …
引出
1.JVM调优的工具阿里云的Arthas的使用,安装和使用;
2.命令的使用案例,dashboard,heapdump,jvm,sm,jad;
3.死锁查询的案例;重新加载一个类信息的案例;调用慢的分析案例。
Arthas的使用
官网和初识
阿尔萨斯官网:https://arthas.aliyun.com/doc/
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
当你遇到以下类似问题而束手无策时,Arthas
可以帮助你解决:
- 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
- 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
- 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
- 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到 JVM 的实时运行状态?
- 怎么快速定位应用的热点,生成火焰图?
- 怎样直接从 JVM 内查找某个类的实例?
安装和使用
curl -O https://arthas.aliyun.com/arthas-boot.jar #下载arthas
java -jar arthas-boot.jar #启动阿尔萨斯
- 1
- 2
- 3
1.启动自己的jar包
java -jar -Xms200m -Xmx200M -XX:+PrintGC -XX:-UseParallelGC spring-gc-demo-1.0-SNAPSHOT.jar
- 1
2.然后启动阿尔萨斯
3.命令参考
https://arthas.aliyun.com/doc/commands.html
命令的使用案例
1.dashboard
通过这个命令,可以查看哪根线程是最吃CPU的!替代:top -p 进程 -H
得到进程仪表盘,当前系统的实时数据面板,按 ctrl+c 退出
2.heapdump
替代jmap命令,dump java heap, 类似 jmap 命令的 heap dump 功能
3.jvm
查看当前 JVM 信息,替代jinfo命令
4.sm
查看已加载类的方法信息
5.jad
jad 反编译看一下
6.help
arthas 的帮助命令
7.memory
查看 JVM 内存信息
8.watch
让你能方便的观察到指定函数的调用情况。能观察到的范围为:
返回值
、抛出异常
、入参
死锁的场景
thread 线程信息
查看当前线程信息,查看线程的堆栈
thread -h 查看帮助
- 1
检测死锁
thread -b
- 1
jad反编译
想在Linux上直接查看某一个类的源代码,可以使用它来完成代码的反编译
在线反编译,比如:A 团队 调用 B团队的接口,当获得结果不对,那么则可以使用这种命令,在线查看B团队中的类的代码
类似于:javap
jad com.tianju.gc.controller.DeadLockController
- 1
retransform 重新加载某一个类的类信息
retransform
在不停止程序的情况,重新加载某一个类的类信息
retransform /root/CardInfo.class
- 1
retransform /usr/local/software/jar/java-gc-demo/CardInfo.class
- 1
调用慢的问题分析
trace调用路径
方法内部调用路径,并输出方法路径上的每个节点上耗时
主要用于:性能调优
分布式系统使用:zipkin ,skywarking
trace命令查看调用链
monitor 方法执行监控
方法执行监控
服务端是以任务的形式在后台跑任务,植入的代码随着任务的中止而不会被执行,所以任务关闭后,不会对原有性能产生太大影响,而且原则上,任何 Arthas 命令不会引起原有业务逻辑的改变
其他使用案例
https://github.com/alibaba/arthas/issues?q=label%3Auser-case
https://github.com/alibaba/arthas/issues/1494
总结
1.JVM调优的工具阿里云的Arthas的使用,安装和使用;
2.命令的使用案例,dashboard,heapdump,jvm,sm,jad;
3.死锁查询的案例;重新加载一个类信息的案例;调用慢的分析案例。
随着人工智能(AI)技术的迅猛发展,尤其是生成式AI(AIGC),劳动力市场正经历前所未有的变革。从内容创作到自动化生产线,几乎每个行业都在经历一场技术的洗礼。然而,这场革命并不是全然的光明,它带来了深刻的社会变动,也引发了广泛的担忧和不安。我们不得不面对一个核心问题:AIGC将如何影响未来的工作?会让人类的大多数工作消失,还是会创造出全新的职业机会?
一、AIGC对现有职业的影响——取代与重塑
AIGC的引入,像是一阵不可阻挡的风暴,迅速改变了传统职业的面貌。在某些行业,它带来了职位的消失,而在另一些行业,AI则成为了助力提升的工具。
1. 创意产业的冲击:从作家到设计师
AIGC对创意产业的影响尤为显著。以内容创作领域为例,AI写作工具已经能够根据用户提供的提示,快速生成高质量的文章、报告,甚至小说。根据Gartner的报告,到2025年,超过30%的企业内容将由AI生成。这意味着传统写作岗位将面临巨大挑战,尤其是那些需要较低技术门槛的职位,如初级记者、内容编辑等。
案例:OpenAI的GPT-3及其后续版本,已经能够撰写完整的文章,甚至为新闻报道和市场营销内容提供支持。例如,《卫报》曾使用GPT-3生成了一篇评论文章,引发了广泛讨论。虽然AI生成的内容仍需人工润色,但其效率和质量已经对传统写作行业构成了威胁。
设计领域的情况也类似。AI绘画和图像处理工具的进步,正在改变设计师的工作方式。以AI绘画工具为例,设计师只需提供简短的文字描述,AI便可根据这些提示生成独特的视觉作品。虽然AI并不能完全取代设计师的创意和艺术性,但它已经成为一种加速创作和提高效率的工具。
案例:Adobe的Sensei平台已经开始在广告和营销领域应用AI来自动化图像优化和素材生成。根据Adobe的调查,使用AI工具的设计师平均节省了40%的时间,但这也导致了对重复性设计岗位的需求大幅减少。
2. 制造业:从流水线到智能化生产
在制造业,AIGC的影响则体现在自动化生产和机器人技术的应用上。以汽车制造为例,许多传统的制造工艺已经被AI驱动的机器人所取代。根据国际机器人联合会(IFR)的数据,2022年全球工业机器人安装量达到创纪录的50万台,其中大部分应用于汽车和电子行业。
案例:特斯拉的超级工厂采用高度自动化的生产线,AI机器人承担了焊接、喷涂和组装等任务。虽然生产效率大幅提升,但这也导致了许多低技术含量岗位的消失。根据麦肯锡的研究,到2030年,全球可能有8亿个工作岗位被自动化取代,其中制造业占比最高。
3. 服务业:智能化与人类共存
服务业同样经历了AIGC带来的巨大变革。以客服行业为例,智能客服机器人已经能够处理大部分常见问题,减少了对人工客服的依赖。根据德勤的报告,到2025年,95%的客户互动将由AI驱动。
案例:阿里巴巴的智能客服系统“阿里小蜜”每天处理数亿次客户咨询,准确率超过90%。虽然这提高了效率,但也导致了许多传统客服岗位的消失。然而,AIGC并不是完全取代人工工作,它更多的是重塑了工作内容,使其从简单的操作性任务转向更高阶的客户关怀和复杂问题处理。
二、AIGC创造的新职业:机遇与挑战
虽然AIGC带来了对传统职业的挑战,但也催生了全新的职业领域。随着AI的普及,新的工作岗位应运而生。
1. 新职业展望
- AI提示工程师(Prompt Engineer):随着生成式AI的普及,AI提示工程师成为了一个新兴职业。他们的工作是通过编写详细的提示语,帮助AI更精确地生成所需内容。这一职业要求较高的跨领域知识,既需要对AI技术有一定了解,又要具备较强的创意和沟通能力。
案例:某科技公司通过招聘AI提示工程师,成功优化了其AI写作工具的输出质量,用户满意度提升了30%。
- AI伦理师:随着AIGC技术的广泛应用,AI伦理问题日益严峻。AI伦理师的出现,旨在制定AI开发和使用的伦理规范,确保AI系统不会对社会造成负面影响。
案例:谷歌成立了专门的AI伦理委员会,负责审查AI项目的伦理风险,并制定相关规范。
- 数据标注员:虽然数据标注员并非新职业,但随着AIGC技术的发展,对数据的训练需求大幅增加,因此该职业需求量也相应增大。
2. 新技能需求
AIGC不仅催生了新职业,还改变了对现有劳动者技能的要求。未来,劳动力市场将更加依赖于批判性思维、创造力和人机协作能力。简单的重复性劳动将逐渐被AI取代,而那些需要高度灵活性和创造性的岗位,将更加受到青睐。例如,AI将无法完全模拟人类的情感智慧和复杂决策能力,因此在教育、医疗、心理咨询等领域,高度依赖人类判断的职业将更具竞争力。
案例:随着AI在各个领域的渗透,许多传统的技术岗位正在被自动化系统所替代。而在此过程中,越来越多的企业和培训机构开始重视员工的创新能力和人际沟通技巧。这一趋势,表明未来的工作将更多地依赖于“软技能”和跨学科的知识体系。
三、AIGC对就业结构的重塑——变革与适应
AIGC的出现不仅仅改变了某些职业和技能的需求,它对整个劳动力市场的结构也将产生深远影响。我们正处在一个“就业结构重塑”的关键时刻,以下几种趋势值得关注。
1. 就业结构变化趋势:技术化与灵活化
随着AIGC的普及,传统的职业结构正在发生巨大变化。首先,技术性岗位的需求将不断增加,尤其是在软件开发、数据分析、AI优化等领域。与此同时,简单的重复性劳动岗位将被自动化设备取代,制造业和基础服务行业的低技能岗位将减少。
自由职业和零工经济将成为更加常见的就业形态。许多公司和组织不再需要长期雇佣员工,而是选择通过临时项目和合同合作来满足需求。这种转变,使得员工的工作形式更加灵活,但也带来了职业稳定性的下降。
案例:Uber、Airbnb等平台的成功,已经展示了零工经济如何在技术进步的推动下兴起。未来,随着AI技术的不断发展,更多以项目为导向的临时岗位将涌现,人们的工作模式将更加灵活,但也更加碎片化。
2. 社会影响:收入差距与教育改革
AIGC技术的迅速普及不仅影响了就业结构,也对社会产生了深远的影响,尤其是在收入差距和教育改革方面。随着AIGC替代传统工作岗位,收入分配不均和技术鸿沟的问题愈加突出,新的社会问题亟待解决。
- 收入差距的扩大:AIGC的应用主要集中在技术含量较高、资本密集型行业,导致收入差距进一步拉大。那些能够操控和开发AI技术的精英群体,将比传统行业从业者获得更高的经济回报。而随着自动化取代低技能劳动者,很多传统行业的工人将面临失业或收入下降的风险。尤其是在制造业和服务业中,自动化技术将大幅减少对低技术工人的需求,从而加剧了贫富差距。
案例:在某些发达国家,AI的普及和自动化发展已经导致低收入行业的大规模裁员,例如餐饮、仓储和零售行业。与此同时,高薪科技职位的需求急剧上升,使得教育和技能培训成为社会的核心问题。
- 教育改革的紧迫性:为了应对AIGC带来的劳动力市场变革,教育系统亟需做出相应的调整。传统教育更多强调基础知识和操作技能,而未来社会对复合型人才和创新型人才的需求将大幅增加。AI和科技技能将成为未来教育的主流内容,不仅需要教导学生如何使用AI工具,更要培养他们与AI协同工作的能力。
案例:例如,某些国际高校已经在其课程体系中加入了AI伦理、数据科学、机器人学等专业课程,培养学生在新经济环境下的核心竞争力。此外,一些国家已开始着手重新设计基础教育课程,增强学生在编程、数据分析和跨学科合作方面的能力,以帮助他们适应未来职场需求。
四、AIGC对全球劳动力市场的影响——国际视野与全球协作
AIGC对劳动力市场的影响不仅限于单一国家或地区,它将在全球范围内引发广泛的变化。全球化进程的加快、跨国企业的运作模式以及国际劳动力流动性,都将受到AIGC的深刻影响。
- 全球劳动力的分化:不同国家和地区在技术适应能力、教育体系、基础设施建设等方面存在差距,这将导致全球劳动力市场的分化。发达国家和地区的劳动力更有可能通过教育和技术培训适应AIGC带来的挑战,并占据新兴的高薪职位;而发展中国家则可能面临更多的就业危机和社会不安定因素。
案例:根据国际劳工组织(ILO)的数据,AI和自动化可能会在未来几十年内对全球不同地区的劳动力市场产生不均等影响。例如,印度和巴西等发展中国家可能因为AI技术的快速替代低技能工作的特征,导致失业率上升,从而加剧贫困和社会不稳定。
- 全球协作与政策协调:随着AIGC技术的扩展,国际合作变得愈加重要。全球范围内的劳动力市场将面临相似的挑战,因此,国际社会需要共同制定相关的政策框架,以减轻技术进步对就业带来的负面影响。通过全球范围内的教育资源共享、技术普及以及跨国企业的合作,能够帮助各国更好地应对这一变革。
案例:一些国际组织和跨国企业已经开始倡导AI相关的全球合作框架。例如,联合国全球契约组织就提出了关于AI伦理的国际准则,并倡导各国政府和企业共同努力,制定政策保护劳动力免受技术进步带来的不利影响。
五、AI、AIGC与机器人的未来展望:乌托邦与黑暗时代
AIGC和机器人技术的发展是相辅相成的。机器人是AI的实体化,赋予了AI在物理世界中行动和交互的能力。随着AI技术的不断突破,特别是通用人工智能(AGI)的出现,机器人将变得更加智能和自主。然而,这种发展也可能走向两个截然不同的极端:乌托邦式的繁荣或黑暗的专制。需要强调的是,无论走向哪种可能性,都需要这些技术发展到极高的水平,否则无法产生如此极端的结果。
1. 正向未来:乌托邦时代
当AI发展出真正的智能时,通过实体化的机器人,几乎可以完成人类的所有生产活动,包括生产基本生活资料以及各种人类所需的产品,如食品、汽车、房屋等等。机器人甚至可以生产自身所需的能源,在满足自身需求后,剩余的资源将全部归人类所有。人类将从繁重的生产劳动中彻底解放出来,只需从事更具创造性的工作,例如科学研究、探索未知等。在AI的辅助下,这些领域将取得更大、更快的进展。
人类将不再需要为基本生活担忧,AI和AI控制下的机器人将照顾好人类的一切需求。金钱这种曾经人人都需要、但也充满罪恶的媒介将永远退出历史舞台。社会将类似于《星际迷航》中的场景:人们不再以挣取金钱为目的而工作,而是为了满足好奇心、探索未知、创造新的事物而努力。每个人都将为了自己和全人类的共同幸福而工作。
生育问题也将得到革命性的解决。在AI的辅助下,人造子宫、基因筛选、育婴机器人将成为主流。人类的繁衍将更加科学和高效,后代在容貌、身体素质以及智商上都将超越旧时代的人类。遗传疾病将被有效控制,人类的平均寿命将大幅延长,人类将真正进入一个崭新的时代。
在这种情况下,世界将不再需要大量的工人从事重复性的生产经营活动。一切都由机器人和AI代劳。人类只需做自己想做、令自己快乐的事情,而机器人将为人类提供一切所需的物质保障。人类将不再为生存而工作,而是为了全人类的幸福和进步而工作。
2. 负向未来:黑暗时代
与乌托邦式的未来截然相反的是,AI、机器人和相关技术的发展也可能走向一个黑暗的深渊。由于AI发展到极高的水平,无论是AI独立发展出智慧,还是AI与机器人结合,亦或是AI、机器人与人类的某种形式的融合,这种强大的力量都可能被极少数人掌控和利用。这些人或组织可能会制定看似合法、实则对自己极其有利的法律和规范,从而巩固他们的统治地位。
由于AI已经发展出真正的智能,它将带动各个领域的高速发展。例如,在医学领域,人类可能会突破生命的极限,甚至可以通过基因工程大幅提高智商。然而,这些顶尖技术将被少数个人或组织垄断。普通人即使知晓这些技术,也无力承担其高昂的价格。
这些极少数人将利用这些顶级技术,创造出或让自己成为在智商、身体素质等各个方面都远超普通人的“超人”。再加上有利于他们的法律和规范,这些人将极大地挤压普通人的生存空间,最终可能导致类似刘慈欣科幻小说《赡养上帝》中描述的结局:地球上的绝大部分资源将集中在一个或少数人手中,形成“终产者”的局面。普通人将沦为被统治和剥削的对象,甚至失去生存的尊严和自由。
在这种情况下,AI和机器人将不再是人类的助手,而是少数人控制和奴役大众的工具。技术进步带来的不是解放和幸福,而是更加残酷的压迫和不平等。
—
结论:历史的浪潮,人类的抉择
AIGC的出现,无疑是历史进程中的一次重大机遇。它如同奔腾的浪潮,裹挟着我们进入一个前所未有的智能时代,预示着生产力、社会结构乃至人类自身都将发生深刻的变革。正如历史上的每一次技术革命一样,AIGC既可能将我们推向繁荣的乌托邦,也可能引领我们走向黑暗的深渊。而方向盘,仍然掌握在人类自己的手中。
然而,我们也应认识到,历史的进程并非完全由人类的主观意志所决定。我们所做的每一个选择,每一次尝试,都只是历史长河中的一朵浪花,共同构成了历史的走向。我们不必刻意地去“改变历史”,或者执着于将AIGC导向某个特定的“理想”方向。重要的是,我们以负责任的态度,尽力做出我们认为正确的选择,朝着我们认为正确的方向前进。
我们能做的,是最大限度地发挥人类的智慧和创造力,利用AIGC的潜力,推动科技进步,促进社会发展,努力构建一个更加美好的未来。我们能做的,是通过教育、政策、伦理规范等多方面的努力,尽可能地减少技术进步可能带来的负面影响,例如失业、贫富差距扩大等问题,确保技术进步的成果能够惠及全人类。
至于历史最终将走向何方,也许早已冥冥之中注定。但重要的是,我们曾经努力过,我们曾经奋斗过,我们曾经为人类的共同福祉做出了自己的贡献。我们所做的一切,无论大小,都将成为历史的一部分,都将在历史的长卷上留下属于我们自己的印记。这本身,就已足够。
总之,是否改变历史不重要,重要的是我们做的每一件事,无论大小,都将成为历史的一部分,我们就是创造历史的人!
评论记录:
回复评论: