`
pingfeng
  • 浏览: 59133 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ActiveRecord在ruby 1.9.2和1.8.7下的性能测试

阅读更多

ctiveRecord在ruby 1.9.2和1.8.7下的性能测试

测试方案:

1. AR自带性能测试方案:向mysql user表和关联表里插入一万条记录。AR3.0.4 运行lib/example目录下的performance.rb

2. AR自带性能测试方案:向mysql user表和关联表里插入一百万条记录。AR3.0.4 运行example目录下的performance.rb


测试目的:


1. 测试AR的new, create ,update, find, all, destroy, find_by_sql的性能.

2. 测试AR在1.9.2和1.8.7上的性能。

3. 测试mysql在简单数据表里,一万条记录与一百条记录下的AR的new, create ,update, find, all, destroy, find_by_sql的性能对比

测试环境:

 型号名称:    iMac
  处理器名称:    Intel Core 2 Duo
  处理器速度:    3.06 GHz
  处理器数量:    1
  总核心数:    2
  L2 高速缓存:    3 MB
  内存:    4 GB
  总线速度:    1.07 GHz


ruby 平台:ruby 1.9.2 p136,ruby 1.8.7 p72:



结果分析 (数据见图):

1. ruby 1.9.2比1.8.7在AR上性能提升约22-26%

2. 在ruby 1.9.2下 AR在1万记录下单条记录的create,  find, update, destroy操作时间约在0.1-2ms之间。多条记录返回,在100条记录,在7-13ms内。在返回10000条记录,就要0.8秒。

 

这里包含了大量数据格式化工作。时间上已经达不到可用性要求了。所以查询多条记录,尽量控制在百条数据左右。主要是每一个对象都有关联对象的查询(一个对象一次查询)。

 

3. 对比一万记录和一百万条记录表, AR的create,  find, update, destroy(在索引基础上)操作性能基本不变。索引的算法是1或n, 保证操作性能不变。

 

性能测试数据:

 

 

  • 大小: 102 KB
  • 大小: 33.6 KB
  • 大小: 100 KB
分享到:
评论

相关推荐

    ruby1.8.7 & rails2.3.8

    在这个压缩包中,你找到了一个完整的Ruby 1.8.7和Rails 2.3.8的开发环境,这是一套较旧但经典的技术栈,适用于学习历史版本的Rails或者维护旧项目。 标题"ruby1.8.7 & rails2.3.8"指的是这个压缩包的核心内容:Ruby...

    ruby 1.8.7 rails 2.3.4

    标题 "ruby 1.8.7 rails 2.3.4" 提及的是 Ruby 语言的一个较旧版本(1.8.7)以及与其兼容的 Rails 框架的老版本(2.3.4)。Ruby 是一种面向对象的、动态类型的编程语言,而 Rails 是一个基于 MVC(模型-视图-控制器...

    ActiveRecord(Ruby)--中文

    Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。

    Pro ActiveRecord Databases with Ruby and Rails.pdf

    ### ActiveRecord在Ruby与Rails中的高级应用 #### 一、引言 《Pro ActiveRecord Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord框架来高效地处理Ruby on Rails中的数据库操作。本书由Kevin ...

    ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)

    在Ruby 1.8.x系列中,1.8.7是最常用的一个版本,因为它对性能进行了优化,同时兼容了许多当时的库和框架。Ruby 1.8.7引入了块参数、内建的JSON支持以及改进的错误处理机制等,使得开发者能够更高效地编写代码。 ...

    rails2.3.8 && ruby1.8.7

    综上所述,这个压缩包提供了在Windows环境下使用Rails 2.3.8和Ruby 1.8.7开发Web应用所需的所有基本组件,包括数据库支持、Rails框架的各个部分以及必要的Gem依赖。开发者只需下载并解压此包,然后按照Ruby和Rails的...

    service-skeleton, 使用 Grape/Roar/ActiveRecord的ruby JSON服务框架.zip

    service-skeleton, 使用 Grape/Roar/ActiveRecord的ruby JSON服务框架 服务框架这是构建 ruby 应用程序/hal json超媒体API的基本框架,我们在 Reverb.com. 中成功地使用了它它的目的是为构建服务提供一个跳转点。...

    Apress Pro ActiveRecord Databases with Ruby and Rails.pdf

    《Pro ActiveRecord:Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord这一对象关系映射(Object Relational Mapping, ORM)工具来管理和操作数据库,特别是在Ruby on Rails框架中的应用。...

    panko_serializer:ActiveRecord和Ruby对象的高性能JSON序列化

    Panko是一个受ActiveModelSerializers 0.9启发的库,用于将ActiveRecord / Ruby对象快速序列化为JSON字符串。 要实现它的: Oj-Panko依赖Oj,因为它速度很快,并允许使用Oj::StringWriter增量序列化 序列化描述符...

    ruby on rails 3

    这个版本是在Ruby 1.9.2环境下发布的,带来了许多改进和新特性,旨在提高性能、可维护性和开发者的生产力。 1. **Ruby 1.9.2**:Ruby 1.9.2是Ruby的一个重要版本,它引入了多项性能优化,包括更快的解析速度、改进...

    Ruby-OccamsRecord缺少ActiveRecord的高效查询API

    然而,尽管ActiveRecord在许多场景下表现出色,但它并不总是最高效的解决方案,特别是在处理大规模数据集时。 Occam's Record(奥卡姆记录)就是为了弥补这一不足而出现的一个库,它是专门为处理大数据集设计的。这...

    Ruby-SchemaPlus提供增强和扩展ActiveRecord的集合

    `SchemaPlus`是一个专门为Ruby on Rails设计的插件,它为ActiveRecord提供了大量的增强和扩展,让数据库管理和操作变得更加灵活和高效。 **SchemaPlus的主要特性** 1. **自动外键** - `SchemaPlus`自动检测并创建...

    Ruby-marginalia添加评论至ActiveRecord的SQL查询

    总之,`Ruby-marginalia`是提升ActiveRecord应用开发效率和可维护性的强大工具,通过在SQL查询中添加注释,它提供了宝贵的上下文信息,使开发者能够更有效地管理和优化数据库交互。在进行性能优化或者调试时,`...

    Ruby-ActiveRecordTurntable是一个数据库分片的ActiveRecord扩展

    这时,数据库分片技术应运而生,它将数据分布在多个数据库服务器上,以实现负载均衡、提高性能和容错能力。Ruby-ActiveRecord Turntable 是一个针对 ActiveRecord 的扩展,专门用于实现数据库分片功能。 **一、...

    Ruby-SpreadsheetArchitect可以将任何activerecord关系或ruby对象集合转换成XLSXODS或CSV电子表格

    Ruby-SpreadsheetArchitect是一个强大的库,专门设计用于Ruby开发者,它允许将任何ActiveRecord关系或Ruby对象集合方便地导出为XLSX、ODS或CSV格式的电子表格文件。这个工具对于需要处理大量数据并希望以用户友好的...

    Ruby-ActiveRecord的BiTemporal数据模型

    在Ruby开发领域,ActiveRecord是Ruby on Rails框架中一个至关重要的组件,它为数据库操作提供了对象关系映射(ORM)功能。在这个特定的上下文中,我们关注的是"Ruby-ActiveRecord的BiTemporal数据模型"。BiTemporal...

    Ruby-pgeyeballs一个Rubygem能提供由ActiveRecord创建关于SQL查询的详细信息

    Ruby-pg-eyeballs是一个专门针对Ruby on Rails框架中ActiveRecord组件的工具,它能够帮助开发者深入理解并分析由ActiveRecord生成的SQL查询。在Ruby开发过程中,尤其是在处理复杂数据库交互时,这个gem显得尤为有用...

    Ruby-Ancestry将ActiveRecord模型组织成一个树状结构

    Ruby-Ancestry是一个非常有用的库,它允许开发者在ActiveRecord模型中构建和管理层次结构,形成树状结构。这个库特别适用于那些需要处理有层级关系数据的场景,比如分类、菜单系统、组织架构等。Ancestry通过提供一...

    Ruby-一个轻量级和数据库级Ruby库用于将任何ActiveRecord查询转换为分析哈希以备任何图表库使用

    库的源代码、示例、测试和其他文档可能都包含在这个目录下。 综合这些信息,我们可以推断出这个Ruby库是一个专注于数据库查询和数据转换的工具,它帮助开发者将ActiveRecord查询结果转化为分析哈希,便于在各种图表...

    Ruby-SearchCop为ActiveRecord提供类似搜索引擎的全文查询支持

    3. **性能优化**:为了提高搜索效率,SearchCop支持对数据库索引的利用,确保在大数据量下的快速响应。 4. **自定义评分系统**:SearchCop允许开发者自定义评分算法,根据关键词在不同字段中的出现情况来调整结果的...

Global site tag (gtag.js) - Google Analytics