正在改变`require`来连接Ruby文件的辉煌还是疯狂?

Nat*_*ong 5 ruby ruby-on-rails ruby-on-rails-3

在启动具有大量依赖关系的Rails应用程序时,在require文件中花费了大量时间(我认为).

假设您要创建一个部署过程,将所有require语句转换为文件串联,使用相同的规则(不要两次获取相同的文件,等等).从本质上讲,它会以资产管道处理javascript的方式对待Ruby.

这会产生真正的速度差异吗?是否会产生任何问题 - 例如,使用可变范围 - 除了将错误跟踪到原始源文件更难?

总之,这是辉煌还是疯狂?

更新

正如pst指出的那样,这在生产中毫无意义,服务器可能会加载一次,然后分叉处理新的请求.

但请考虑测试环境,每次运行测试时都会在其中启动Rails应用程序.预先连接所有宝石可能会产生类似于Spork宝石的效果.

我想我真正的问题是require解析文件内容方面花了多少时间.

小智 2

太棒了;它不会对请求之间的摊销产生影响1 -任何微不足道的启动成本都是无关紧要的2

1 “提高性能”的更好方法就是重用进程 - 例如,仅针对 N 个请求加载一次进程(这意味着仅“运行”语句require一次) - 正如已经完成的那样。

2对于那些真正对“它是否会解析得更快”感兴趣的人,请运行基准测试。然后意识到这并不重要——即使在启动时节省一秒钟对于网络服务器基础设施来说也不重要。(当然,如果有的话,它只会比一些额外的磁盘搜索快几毫秒。)