level 1
爱世火狐
楼主
因为在官网上请教没人回复,还是来贴吧打听一下吧,这里貌似热闹点。
正题:
在生成的编译缓存文件的最后,追加了Think::start() 入口。因而在部署模式(且已经生成好了编译缓存)下运行指令走出编译缓存后进入Think::start()方法,可是这个方法中不加任何判断就调用了buildApp()方法,该方法为了再次生成缓存有重新加载了一遍之前缓存中的文件。那编译缓存的初衷:”将所有必需文件及环境配置信息等等集合到一个文件中从而减少io开销“ 不就是白费了吗![[惊哭]](/static/emoticons/u60cau54ed.png)
按照这个流程,即使生成了编译缓存,大部分文件还是会在Think::start() 方法调用时要重新加载,编译缓存仅仅是跳过了runtime.php 文件减少了runtime.php 文件中处理的的环境判断,常量定义及少部分文件的io开销。
个人觉得在Think::start() 方法中必须
加个判断 if(APP_DEBUG || (!APP_DEBUG && !is_file(RUNTIME_FILE) ) )
作为新手标示很困惑,不知道是我哪里理解错代码了吗,请大神指教啊。
2014年02月12日 18点02分
1
在生成的编译缓存文件的最后,追加了Think::start() 入口。因而在部署模式(且已经生成好了编译缓存)下运行指令走出编译缓存后进入Think::start()方法,可是这个方法中不加任何判断就调用了buildApp()方法,该方法为了再次生成缓存有重新加载了一遍之前缓存中的文件。那编译缓存的初衷:”将所有必需文件及环境配置信息等等集合到一个文件中从而减少io开销“ 不就是白费了吗
按照这个流程,即使生成了编译缓存,大部分文件还是会在Think::start() 方法调用时要重新加载,编译缓存仅仅是跳过了runtime.php 文件减少了runtime.php 文件中处理的的环境判断,常量定义及少部分文件的io开销。
个人觉得在Think::start() 方法中必须
加个判断 if(APP_DEBUG || (!APP_DEBUG && !is_file(RUNTIME_FILE) ) )
作为新手标示很困惑,不知道是我哪里理解错代码了吗,请大神指教啊。