如果可以选择在编译时预加载缓存,或者在运行时首先预加载缓存,那么几乎没有区别.
如果您的缓存足够大,加载它将触发大量页面交换,这是等待运行时间的参数.这样,您的所有模块加载和其他编译时代码都可以在系统负载较轻的情况下完成.
你并没有提供任何关于你所谈论的环境的信息,我认为这很重要.在大多数情况下,答案可能是"不",但我可以想到一个肯定是肯定的情况,即预备服务器 - 网络应用程序等.在这种情况下,任何工作,你可以做"叉之前"不仅省去了孩子单独重新计算的值相同的成本,ALO节省内存,因为包含结果的页面可以在所有的子进程共享通过操作系统的COW机制.
如果你在谈论你正在编写的模块而不是应用程序,那么我会说不,不要在未经用户许可的情况下将编译时间提升到编译时间,除非他们必须完成模块的操作.工作.相反,提供一个preheat_cache类方法,如果调用者有理由在编译时需要热缓存,他们可以BEGIN自己将调用放入一个块.您也可以使用:preheat_cache导入标签,但这在我的书中是不必要的.