7

我想要一个没有 Action Mailbox 或 Action Text 的新 Rails 6 应用程序,所以我创建了一个

rails new myapp --skip-action-mailbox --skip-action-text

然后我将它们删除application.rb

但是当我运行bundle exec derailed bundle:mem它时,它表明它们仍然存在:

rails/all: 36.2539 MiB
    action_mailbox/engine: 13.5313 MiB

如何删除它们以节省内存?

4

2 回答 2

1

我有同样的问题,即使我application.rb看起来像这样:

%w(
  action_controller/railtie
  action_view/railtie
  active_job/railtie
  sprockets/railtie
).each do |railtie|
  begin
    require railtie
  rescue LoadError
  end
end

bundle exec derailed bundle:mem仍然显示:

TOP: 121.7656 MiB
  rails/all: 71.375 MiB
    action_mailbox/engine: 41.5 MiB
      action_mailbox: 41.4688 MiB
        action_mailbox/mail_ext: 41.4688 MiB
          action_mailbox/mail_ext/address_equality.rb: 39.6875 MiB
            mail/elements/address: 39.6875 MiB
              mail/parsers/address_lists_parser: 39.6094 MiB (Also required by: mail/parsers)
                mail/parsers: 7.5313 MiB
                  mail/parsers/received_parser: 5.1563 MiB
                  mail/parsers/envelope_from_parser: 1.4844 MiB
                  mail/parsers/message_ids_parser: 0.3281 MiB
          mail: 1.7344 MiB
            mail/field: 0.7813 MiB
于 2021-07-31T18:30:36.803 回答
0

遇到同样的问题,这实际上是一个红鲱鱼。加载所有轨道的是 derailed_benchmark gem 本身。看到这个问题:

https://github.com/rails/rails/issues/41361

我认为这是因为在运行 derailed bundle:mem here时需要 rails/all 。

gem的(尚未发布main的)分支提供了环境变量DERAILED_SKIP_RAILS_REQUIRES,但是当在我的特定 rails 应用程序上运行时,这只会导致异常derailed bundle:mem

因此,解决方案是忽略这一点并考虑到您的应用实际上并未加载 action_mailbox,或者使用README中描述的动态基准测试:

bundle exec derailed perf:mem
于 2022-02-10T12:47:49.827 回答