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
分享到:
相关推荐
在这个压缩包中,你找到了一个完整的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 是一种面向对象的、动态类型的编程语言,而 Rails 是一个基于 MVC(模型-视图-控制器...
Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。
### ActiveRecord在Ruby与Rails中的高级应用 #### 一、引言 《Pro ActiveRecord Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord框架来高效地处理Ruby on Rails中的数据库操作。本书由Kevin ...
在Ruby 1.8.x系列中,1.8.7是最常用的一个版本,因为它对性能进行了优化,同时兼容了许多当时的库和框架。Ruby 1.8.7引入了块参数、内建的JSON支持以及改进的错误处理机制等,使得开发者能够更高效地编写代码。 ...
综上所述,这个压缩包提供了在Windows环境下使用Rails 2.3.8和Ruby 1.8.7开发Web应用所需的所有基本组件,包括数据库支持、Rails框架的各个部分以及必要的Gem依赖。开发者只需下载并解压此包,然后按照Ruby和Rails的...
service-skeleton, 使用 Grape/Roar/ActiveRecord的ruby JSON服务框架 服务框架这是构建 ruby 应用程序/hal json超媒体API的基本框架,我们在 Reverb.com. 中成功地使用了它它的目的是为构建服务提供一个跳转点。...
《Pro ActiveRecord:Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord这一对象关系映射(Object Relational Mapping, ORM)工具来管理和操作数据库,特别是在Ruby on Rails框架中的应用。...
Panko是一个受ActiveModelSerializers 0.9启发的库,用于将ActiveRecord / Ruby对象快速序列化为JSON字符串。 要实现它的: Oj-Panko依赖Oj,因为它速度很快,并允许使用Oj::StringWriter增量序列化 序列化描述符...
这个版本是在Ruby 1.9.2环境下发布的,带来了许多改进和新特性,旨在提高性能、可维护性和开发者的生产力。 1. **Ruby 1.9.2**:Ruby 1.9.2是Ruby的一个重要版本,它引入了多项性能优化,包括更快的解析速度、改进...
然而,尽管ActiveRecord在许多场景下表现出色,但它并不总是最高效的解决方案,特别是在处理大规模数据集时。 Occam's Record(奥卡姆记录)就是为了弥补这一不足而出现的一个库,它是专门为处理大数据集设计的。这...
`SchemaPlus`是一个专门为Ruby on Rails设计的插件,它为ActiveRecord提供了大量的增强和扩展,让数据库管理和操作变得更加灵活和高效。 **SchemaPlus的主要特性** 1. **自动外键** - `SchemaPlus`自动检测并创建...
总之,`Ruby-marginalia`是提升ActiveRecord应用开发效率和可维护性的强大工具,通过在SQL查询中添加注释,它提供了宝贵的上下文信息,使开发者能够更有效地管理和优化数据库交互。在进行性能优化或者调试时,`...
这时,数据库分片技术应运而生,它将数据分布在多个数据库服务器上,以实现负载均衡、提高性能和容错能力。Ruby-ActiveRecord Turntable 是一个针对 ActiveRecord 的扩展,专门用于实现数据库分片功能。 **一、...
Ruby-SpreadsheetArchitect是一个强大的库,专门设计用于Ruby开发者,它允许将任何ActiveRecord关系或Ruby对象集合方便地导出为XLSX、ODS或CSV格式的电子表格文件。这个工具对于需要处理大量数据并希望以用户友好的...
在Ruby开发领域,ActiveRecord是Ruby on Rails框架中一个至关重要的组件,它为数据库操作提供了对象关系映射(ORM)功能。在这个特定的上下文中,我们关注的是"Ruby-ActiveRecord的BiTemporal数据模型"。BiTemporal...
Ruby-pg-eyeballs是一个专门针对Ruby on Rails框架中ActiveRecord组件的工具,它能够帮助开发者深入理解并分析由ActiveRecord生成的SQL查询。在Ruby开发过程中,尤其是在处理复杂数据库交互时,这个gem显得尤为有用...
Ruby-Ancestry是一个非常有用的库,它允许开发者在ActiveRecord模型中构建和管理层次结构,形成树状结构。这个库特别适用于那些需要处理有层级关系数据的场景,比如分类、菜单系统、组织架构等。Ancestry通过提供一...
库的源代码、示例、测试和其他文档可能都包含在这个目录下。 综合这些信息,我们可以推断出这个Ruby库是一个专注于数据库查询和数据转换的工具,它帮助开发者将ActiveRecord查询结果转化为分析哈希,便于在各种图表...
3. **性能优化**:为了提高搜索效率,SearchCop支持对数据库索引的利用,确保在大数据量下的快速响应。 4. **自定义评分系统**:SearchCop允许开发者自定义评分算法,根据关键词在不同字段中的出现情况来调整结果的...