弄清楚哪些gemRails应用程序不使用

使用拥有近200颗gem的应用程序。 有没有人想出如何隔离未使用的gem,以便可以将它们从混合物中取出。

由于Ruby的动态特性,如果没有测试,就不可能确定是否使用了gem。 尽管在没有充分理由的情况下在ad-hoc中加载它们是不好的做法,但是可以在程序执行的任何时候都需要gem。 它们不需要预先装载。

尽管按需加载gem可能有好处,例如,保持较低的内存占用并缩短启动时间,但确实难以确定实际使用它们的位置和位置。

gem名称与其使用的方法之间并不总是相关。 虽然许多人都有一个很容易被命名的命名空间,但是有些只是向现有类添加方法,这可能会使跟踪它们变得复杂,特别是如果它们使用具有相同名称的新方法修补旧方法。

如果您能够通过单元,function和集成测试来运行大部分应用程序,则可以使用ruby-prof来至少了解使用哪些gem。 这可以使识别候选人更容易。