网站首页 > 博客文章 正文
不爱我就算了
但是你也要跟我说一下吧
没必要对我冷暴力
我大抵是熬不过这一天了
等你的消息就让我生不如死了
前不久,IDEA 2024.3 早期访问计划,也就是 EAP 已经发布了,其中释出了几个很有意思的新特性。
第一个,增强的HotSwap特性
我们知道HotSwap的作用主要是在我们修改代码后,不需要重启就能看到最新的程序效果,俗称热替换,用人话说就是实时加载代码。
这类功能在 IDEA 中本身的支持是非常弱鸡的,所以不得不安装类似 JRebel 之类的插件来实现热替换。
因为这个功能能够肉眼可见的节省很多的项目重启时间,所以也深受大家喜爱,特别是一些老项目,代码库很大,启动一次都要 8 分钟,这怎么能受得了啊!
而 IDEA 这次带来的这个新特性是怎样的呢?
首先你需要以 debug 的形式运行你的项目,然后放你的代码发生改变的时候,IDEA 会给你一个按钮来让改动后的代码生效,并且可以在终端看到 start computation 的标识。
如上,IDEA 会自动检测代码是否有改变,有的话就会在这里给出提醒,然后你可以点击像 debug 的按钮应用 hot swap。
同时在控制台也会有对应的日志出现
但是这个功能也会有一些局限,显得不如 JRebel 这类工具强大。
第一点,对于方法体内部的修改是有效的,但是对于方法签名的修改是没效果的
第二点,添加或者删除类的成员是没有效果的
这几个限制是因为收到了标准 VM 的影响,但是如果使用的是Dynamic Code Evolution VM,简称 DCE VM。下面就简称 DCE 了。
为什么 DCE 可以突破限制呢?
DCE 是标准 VM 的一个补丁,通过修改JAVA HOSTSPOT虚拟机,允许对已加载的class进行任意的修改:增加或删除变量、方法,接口的继承关系等, 来提高开发效率。
它使用了fast in-place instant update算法保证了在性能上与full gc相当。DCE 可以在标准的开发环境中使用,不需要额外的工具或依赖。
DCE 的能力之强,也使得他的应用范围很广,除了我们日常 debug 用它可以提高开发效率之外,还有如下几个应用。
第一个,不停机更新服务
关键性服务可以通过DCE进行不停机升级,这依赖于升级的安全性与正确性。代码升级前或升级后服务速度不会降低。听起来就令人激动的不得了了,居然还有这种神仙技术。
第二个,动态语言的特性
在动态语言中,DCE是最普通的特性,但为了在静态类型虚拟机上运行动态语言,其实需要做多方面努力。
第二个,加速多模块的编译速度
在之前的 IDEA 版本中,项目里面的多个模块是怎么编译的呢?
答案是 one by one。
那可想而知,对于大项目,我们等待的时间会是多么难熬啊!我是经历过这类痛苦的,从下载依赖到项目第一次运行起来,你可以看完一部抓娃娃电影,打一把黑神话悟空,再打开美团点一杯我爱你,你爱我的蜜雪冰城喝起来。
等到太阳落山的时候,再看看程序起来没有。
这次的 IDEA 更聪明了,决定在适合的时候开启并行编译。
可以按如下这样配置
什么是适合的时候呢?就是他觉得并行编译不会耗尽你的 CPU 等资源的时候。
猜你喜欢
- 2025-05-02 spring Boot必用依赖框架(spring boot 依赖)
- 2025-05-02 Navigating global shifts and forging a path for emerging economies
- 2025-05-02 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 2025-05-02 Terminal affliction - China’s vanishing coach stations
- 2025-05-02 连载嵌入式Linux开发教程:初始Ubuntu
- 2025-05-02 Win10预览版9879硬盘丢失的Linux解决方案
- 2025-05-02 idea插件之Grep Console(工欲善其事,必先利其器)
- 2025-05-02 mybatis-plus保姆级入门教程,手把手教你轻松实现增删改查
- 2025-05-02 java日常开发笔记和开发问题记录(java开发问题总结)
- 2025-05-02 IDEA界面太丑??尝试一下这几个插件
你 发表评论:
欢迎- 07-08Google Cloud Platform 加入支持 Docker 的容器引擎
- 07-08日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 07-08美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- 07-08GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 07-08谷歌推出Cloud Dataproc,缩短集群启动时间
- 07-08Infovista与Google Cloud携手推进射频网络规划革新
- 07-08比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- 07-08BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- 最近发表
-
- Google Cloud Platform 加入支持 Docker 的容器引擎
- 日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 谷歌推出Cloud Dataproc,缩短集群启动时间
- Infovista与Google Cloud携手推进射频网络规划革新
- 比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- NCSA和Google Cloud合作开发AI驱动的网络防御系统,加强泰国网络空间的安全性
- SAP将在沙特阿拉伯 Google Cloud 上推出BTP服务
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)