点击这里给我发邮件
点击这里给我发消息

关于web项目run模式启动和debug模式启动的一些区别

之前总是觉得 run 和 debug 模式存在性能区别,其实也没错,那些断点调试机制又不是买一赠一。

那到底怎么选择?

浅谈下其他区别:

在debug模式下,当我们修改方法体内的代码时,我们是不需要重启web server的,web服务器会自动的把这些改动替换到vm当中,学名叫hot swap。通过以下运行时的截图,给大家展示一下效果

原始情况下:

在不重启web服务器的情况下,修改控制台输出内容,运行时控制台输出内容即为修改后的内容

可以看到,在不重启web server的情况下,我们修改的内容会马上起作用。也即,这些内容会动态的添加到运行的vm当中。

但经过测试,发现并不是所有情况下,我们的改动都会同步更新到运行时vm当中。下面把可以动态更新到vm中的情况与不能动态更新到vm中的情况列一下:

改动内容可以动态更新到vm的情况

1、修改方法体内的内容,无论是实例方法还是静态方法。

不能动态更新到vm的情况

1、新增、删除实例方法、静态方法时。

2、新增、删除实例变量、类变量时。

3、引入了新创建的内部或外部类时。

4、方法当中有对类变量或实例变量的引用,当外部变量被修改时。

 

上面是网络上对于热替换功能做出的解释。

个人总结:如果你机器卡,且后台稳定。文档清楚,那就run吧。不然还是老老实实debug,调试起来方便。

posted on 2020-01-20 10:05  菜风少侠  阅读(1963)  评论(0编辑  收藏  举报