Ruby on rails RubyonRails能否利用多核Intel处理能力?

Ruby on rails RubyonRails能否利用多核Intel处理能力?,ruby-on-rails,ruby,multithreading,Ruby On Rails,Ruby,Multithreading,在决定一个合适的MAc Pro配置时,我在考虑是否值得为Xeon quad配置投入资金?然而,Ruby能够利用多核处理器的并行处理能力吗?与单核相比,它在性能方面会有所不同吗?您的应用程序可能不会是多线程的,但这并不重要——即使是多线程的,您的应用程序可能也不会因为cpu不足而在您的开发机器上产生影响 区别在于你在开发过程中所做的所有其他事情——将应用程序加载到ram、运行脚本、运行测试 更多的内核总是很好的,它将帮助您完成上述工作,并在这里和那里以更快的速度并行完成更多工作,但您将看到更大的性

在决定一个合适的MAc Pro配置时,我在考虑是否值得为Xeon quad配置投入资金?然而,Ruby能够利用多核处理器的并行处理能力吗?与单核相比,它在性能方面会有所不同吗?

您的应用程序可能不会是多线程的,但这并不重要——即使是多线程的,您的应用程序可能也不会因为cpu不足而在您的开发机器上产生影响

区别在于你在开发过程中所做的所有其他事情——将应用程序加载到ram、运行脚本、运行测试

更多的内核总是很好的,它将帮助您完成上述工作,并在这里和那里以更快的速度并行完成更多工作,但您将看到更大的性能提升的地方是:

  • 固态硬盘
  • 公羊

  • 在CPU上花钱之前,先把钱花在SSD和ram上。

    Ruby在某种程度上可以通过Thread.new{…}利用多核,但是其他人对开发机器上Rails应用程序需要多核的说法非常准确——这不是必需的。虽然您可以使用JRuby在生产环境中获得多线程Ruby,但这不会对您的开发环境产生太大影响,特别是因为您可能会在您的开发机器上关闭缓存等,这将比在问题上投入更多硬件更能影响性能。在本地使用JRuby将要做的事情(如果您也在使用it产品)是警告JRuby特定的问题,除非您尝试部署,否则您可能看不到这些问题

    综上所述,我发现一台坚固、功能强大的机器对于我在开发方面所做的所有事情都非常有用:

    • 演奏音乐以集中注意力
    • 在本地运行PostgreSQL/MySQL测试服务器进行测试
    • 可能的VMWare Fusion/Parallels与本地运行的测试服务器
    • 有一个浏览器,其中有大量打开的选项卡,用于测试/文档查找/询问有关StackOverflow的问题
    • 你会希望你的终端几乎一直打开
    • 您的文本编辑器
    …并持续不断,这取决于您的设置。每个人都是不同的,但我认为可以肯定地说,不管怎样,你大部分时间都会有一些东西在运行

    一台好的、功能强大的机器最棒的一点是,它将拥有一个超级快速响应的系统,其中包含了编码时要做的所有事情,这样你就不会觉得你的开发箱在拖你的后腿。就我个人而言,这是我最不想考虑的事情

    就在6个月前,我在一台使用了5年的13英寸macbook上进行Rails开发,它包含了第一批Core 2 Duo芯片之一,而且真的很好。我可以完成我的工作,机器也完成了我需要它做的事情。然而,我最终升级到了一台新机器(Core i7处理器和大量RAM),我注意到的主要区别是这台机器有多快。不,更快的机器并没有让我打字更快,我的测试套件也没有比以前快很多(信不信由你),但我得到的额外计算空间使编码方式更舒适


    还有一种观点认为,如果你以编写代码为生,一台舒适的机器的价格占你工资的百分比通常很低,这对为你提供一个伟大的创造性工作环境有很大帮助。

    当然,如果你有一个集群设置,你肯定会看到性能的提高(假设CPU限制的操作)。你甚至可以得到单核Mac Pro吗?你读过和吗?谢谢你的回答。你运行VMWare进行跨浏览器兼容性测试吗?(只是好奇)这是它的一部分。我还使用它来运行测试服务器,这些服务器在我的开发环境中代表生产服务器。例如,我们有一个应用程序,它有一个本地应用程序数据库,但也依赖于CAS服务器在整个企业中进行用户身份验证。我的开发机器在开发过程中没有碰到实际的CAS服务器,我的团队成员有在本地部署一个运行测试CAS服务器的VM。这是一个极端的例子,但在我们的例子中,这是在开发过程中最接近复制生产的最简单方法,因此在部署时避免不必要的意外。在这些情况下,RAM可能仍然对系统的响应能力最为重要。如果必须制造RAM而不是CPU d由于预算限制,我会选择更多的RAM。但是如果你能同时做到这两个,那是值得的。我想是的,但我不敢提及SSD或RAM,因为这个问题可能被认为过于主观(我们都知道这会导致什么…;)