使用多个ActionMailer类会增加内存开销吗?

时间:2015-10-27 15:17:59

标签: ruby-on-rails performance ruby-on-rails-3 memory actionmailer

我目前在Rails 3.2应用中使用了两个Mailer类。一个是 AdminMailer,专门用于向内部团队发送电子邮件,一个是 UserMailer ,用于向我们的注册用户发送电子邮件。

UserMailer开始感到臃肿,其中有35种方法(即35种不同的电子邮件)并且正在计数。我绝对可以把这些适合主题的电子邮件的一部分,并将它们提取到第三个Mailer类中,以使代码更易于管理和阅读。

我的问题是:它是否会在应用上引入更多的内存开销来实例化更多的Mailer类?

我尝试在Google和Google上搜索此内容Stack Overflow但似乎没有找到关于该主题的任何内容。谢谢!

1 个答案:

答案 0 :(得分:2)

Rails中的每个请求都会初始化约50k个对象。一个或多或少的课程并没有太大的区别。例如,basecamp3有超过40个邮件程序(来源:https://twitter.com/dhh/status/656905137898786816)。

将邮件分割成许多类使得更容易测试(单一责任,更少存根/嘲弄)。

不用担心,把它们分成很多班级!不会影响您的表现。大多数等待时间'在Rails中来自数据库交互。在大多数情况下,优化Ruby代码只是与数据库操作时间相比的微观改进