编辑 - 这不是一个旨在抨击 Rails 的线程!我喜欢 Rails,我只是想完全理解这些差异。
编辑 2 - 找到一篇非常简洁的文章,看起来它可能与如何实例化具有简单类或多维数组的对象有关。http://merbist.com/2012/02/23/quick-dive-into-ruby-orm-object-initialization/
我最近开始从 PHP/Codeigniter 转换到 Ruby/Rails。我现在主要只是在玩 Rails,以了解它是如何工作的。
我最初担心的是性能。我有一个“位置”模型,它存储有关位置的一些信息。大约 10 个 varchar 列。总共有4000条记录。我设置了两个比较 CodeIgniter 和 Rails 的快速测试。
在ruby/rails位置索引视图中,我运行Location.all
. 如果我然后呈现一个空视图,页面上的初始响应时间约为 400-500 毫秒。没有Location.all
是稳定的 20 毫秒。
在php/codeigniter中,我可以做完全相同的事情 ( $this->db->get('locations')->result_array()
)。页面上的初始响应大约为 100 毫秒。在没有实际提取所有记录的情况下,我的响应时间是稳定的 30 毫秒。
我知道一次实际加载 4000 条记录可能是不现实的,但让我害怕的是性能上有这么大的差异。谁能解释发生了什么,如果有什么我可以做的来避免这种情况。100ms 与 500ms 是 5 倍的性能差异!到目前为止,我喜欢rails,所以不要把它当作一种抨击,只是想把我的头绕在它周围。
红宝石/铁路截图
PHP/代码点火器