我一直在寻找优化ruby程序,这个程序对很多数据来说都是计算密集型的.我不知道C并且选择了Ruby(不是我也很清楚)并且除了执行时间之外我对结果非常满意.这是一个很多数据,没有花钱,我想知道我能做些什么来确保我最大化自己的系统资源.
当我运行一个基本的Ruby程序时,它是否使用单个处理器?如果我没有专门为处理器分配任务,Ruby将无法读取我的程序并神奇地加载每个处理器以尽快完成程序吗?我假设没有......
我一直在阅读关于加速Ruby的一些内容,并在另一个线程中读到Ruby不支持真正的多线程(虽然它说JRuby确实如此).但是,如果我将我的程序"分解"为两个可以在不同实例中运行的块并以parralel运行它们......这两个块会自动在两个独立的处理器上运行吗?如果我有四个处理器并打开了四个炮弹并运行了四个独立的部分(1/4) - 它会在1/4的时间内完成吗?
看完评论后,我决定给JRuby一个机会.移植应用程序并不困难.我还没有使用"桃子",但只需在JRuby中运行它,该应用程序运行时间为1/4!疯.我没想到会发生太大变化.现在给.peach打一针,看看它是如何改善的.仍然无法相信提振.
刚试了一下桃子.结束剃须另外15%的时间.所以切换到JRuby并使用Peach绝对值得.
感谢大家!