弄清楚哪些宝石Rails应用程序不使用

the*_*gah 5 ruby gem

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

tad*_*man 3

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

尽管按需加载 gem 可能有一些优点,例如,保持较低的内存占用和减少启动时间,但它确实使确定它们是否或在何处实际使用变得困难。

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

如果您能够通过单元测试、功能测试和集成测试来测试应用程序的大部分内容,那么可以使用ruby​​-prof至少了解使用了哪些 gem。这可以使识别要删除的候选人变得更加容易。