关于热部署-理解与总结

简介: 由于我一直是做php开发,热部署对我而言是一个新概念,比较新鲜。根据查阅,才知道是其他语言才有的。 我更喜欢了解一项技术从原理性来求解,这样一通百通。只需要了解原理,就抓住本质的东西了,细节可能不会。

由于我一直是做php开发,热部署对我而言是一个新概念,比较新鲜。根据查阅,才知道是其他语言才有的。

我更喜欢了解一项技术从原理性来求解,这样一通百通。只需要了解原理,就抓住本质的东西了,细节可能不会。

我总结需要热部署的根源在于如下:

应用程序服务器(tomcat,node.js)为了提高性能。一个代码文件比如a.php(这里只是用php来举例,php无这种机制),

需要的时候会把a.php的内容载入内存,下回访问,直接从内存中拿代码。

所以:即便我修改了a.php代码,更新,应用程序服务器拿的还是内存中的a.php代码。

所以重启应用程序服务器,就能使用新的了。

他们提到,要热部署是为了解决:开发人员修改一个新的功能,无法马上看到效果。需要重启应用程序服务器,才能看到新代码效果。

java,node.js这类语言需要热部署:每次修改代码,都不会马上生效。因为拿的还是内存中的代码,所以每次都需要重启tomcat服务器,tomcat应用服务器就会重新从磁盘拿最新的代码。

解决共同的目标:修改代码,即时看到更改的效果,这样子实现快速开发。



====================================

更进一步总结:每种语言的应用服务器机理不同,php引擎并不是这样子机理。

php是解释性脚本,php引擎每次都是直接从磁盘上拿a.php文件中的代码来执行。开发人员更新了磁盘上的a.php,就是最新效果。

所以难怪php开发是没有热部署的概念,因为压根不需要重启php.exe(php引擎)才能看最新修改效果。

 

java等编译型语言,其实拿代码从内存中拿,避免每次都重新编译,可以提高性能。从内存中直接拿可以免去编译这一步。热部署一般是解决,程序代码修改不能即时生效的问题。是在应用程序服务器进行配置。马上可以看到效果。





参考资料:
1、java的热部署原理
http://tech.it168.com/a2011/0617/1206/000001206051.shtml

2、node.js(一门后端语言)的热部署机制分析
http://www.cnblogs.com/CodeGuy/archive/2013/04/27/3043040.html

目录
相关文章
|
JSON Java 数据格式
SpringBoot热部署详解
SpringBoot热部署详解
SpringBoot热部署详解
|
3月前
|
Java
SpringBoot项目配置热部署启动 及 热部署失效的问题解决
这篇文章介绍了如何在SpringBoot项目中配置热部署启动,包括在pom文件中添加热部署依赖、在IDEA中进行设置、修改配置文件以及IDEA启动设置,以解决热部署失效的问题。
SpringBoot项目配置热部署启动 及 热部署失效的问题解决
|
6月前
热部署怎么部署
热部署怎么部署
52 2
|
6月前
|
Java Maven Android开发
SpringBoot - 项目热部署与devtools
SpringBoot - 项目热部署与devtools
66 0
|
监控 Java 开发者
SpringBoot热部署
在日常开发中,我们需要经常修改 Java 代码,手动重启项目,查看修改后的效果。如果项目还比较小,重启速度比较快,等待的时间是较短的。但是随着项目逐渐变大,重启的速度变慢,等待时间越来越长,我们的效率就很低下。Spring Framework 提供了热部署(Hot Reload)功能,允许在开发过程中无需重启应用程序就能实时地修改代码并看到更改效果。这对于提高开发效率非常有帮助。
177 0
|
Java 应用服务中间件
javaweb的热部署
javaweb的热部署
73 0
|
Web App开发 前端开发 JavaScript
SpringBoot开发模式自动重启热部署spring-boot-devtools
SpringBoot开发模式自动重启热部署spring-boot-devtools
200 0
SpringBoot开发模式自动重启热部署spring-boot-devtools
使用devtools开启热部署
使用devtools开启热部署
119 0
使用devtools开启热部署
spring-boot-devtools在Idea中热部署
spring-boot-devtools在Idea中热部署
109 0
spring-boot-devtools在Idea中热部署
|
Java
第八篇:SpringBoot热部署 如何打开热部署 如何控制热部署的范围 如何关闭热部署
第八篇:SpringBoot热部署 如何打开热部署 如何控制热部署的范围 如何关闭热部署
278 0
第八篇:SpringBoot热部署 如何打开热部署 如何控制热部署的范围 如何关闭热部署