ruby-on-rails - 为什么Rails 5使用puma而不是webrick进行开发?

标签 ruby-on-rails ruby-on-rails-5

我试图找出 Puma和Webrick 之间的区别,但没有得到它或对此不满意。

因此,任何人都可以分享有关它的信息。

最佳答案

默认情况下, WEBrick 单线程单个进程。这意味着,如果同时有两个请求,则第二个必须等待第一个完成。

解决慢速I/O的最有效方法是多线程。一个工作进程在其中产生了几个工作线程。每个请求都由其中一个线程处理,但是当它暂停I/O时(例如等待db查询),则另一个线程开始工作。这种来回快速的操作可以最大程度地利用您的RAM限制,并使您的CPU保持繁忙。

因此,使用 Puma 实现了多线程,这就是为什么在Rails App中将其用作默认App Server的原因。

关于ruby-on-rails - 为什么Rails 5使用puma而不是webrick进行开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49674481/

相关文章:

ruby-on-rails - 如何在 rails (postgres) 查询中参数化日期范围?

ruby - ActiveRecord 查询关联

ruby-on-rails - 如何检查 Rails 中的 hstore 键更改

ruby-on-rails - Rails sunspot-solr - 带连字符的单词

ruby-on-rails - Rails + PostgreSQL,根据 Rails 验证规则创建重复记录

ruby-on-rails - Rails 5.1 中的未知参数强参数问题

mysql - 如何在 Rails 中查询自引用 "has_many :through"关系的反转?

ruby-on-rails - Rails 3.2.8,只有重启服务器才会取消缓存模型

ruby-on-rails - 在 Rails 应用程序中实现 Web 服务客户端的最佳实践

ruby-on-rails - 仅将 namespace 用作参数