Rails 请教一下关于 Rails 加载的问题

uestc_bird · 2016年07月11日 · 最后由 huacnlee 回复于 2017年03月24日 · 2118 次阅读

rails只是一堆代码,并不能独立运行,必须有其他的进程来讲rails的代码“加载”起来 例如passenger在启动的时候就会加载rails的代码,这个加载时啥意思?能具体解释一下吗? 是把rails的代码都读入内存?全部代码? 我知道rails的加载其实就是在初始化一些contants,把所有的模块、类等的常量的名字读入自己的内存空间而已 那么既然其他程序把rails的代码加载进内存了,是不是就可以把rails工作目录删除也没啥问题?(这个当然不行~~~~~)

共收到 8 条回复

#1楼 @huacnlee nice answer!thanks very much! 顺便追问一句,就算加载进内存的那些类和模块,也应该不是永远常驻内存的吧?应该也会从内存里面换入换出吧?如果有这种换入换出的机制,我猜测应该不是宿主OS来管理这个内存的换入换出,肯定会有一个rails自己的manager来管理这个换入换出的过程,这个manager做的主要工作就是把类名、模块名和他们对应的源文件一一对应起来。求证

#3楼 @huacnlee 上面也是我自己YY的😀 纯属猜测。你的回答还有给的参考资料很好!

#4楼 @uestc_bird OS的内存管理跟进程没关系,透明的

#2楼 @uestc_bird 听起来很PHP哈, 类找不到就自动加载, 用完之后全部丢掉

@huacnlee 为什么homeland里用development 模式启动代码,修改app/controllers/ 的代码不会自动重新加载,还需要重启服务?有点疑惑

gaolei14 回复

rails dev:cache

9楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册