首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

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

2012-12-21 
ActiveRecord在ruby 1.9.2和1.8.7下的性能测试ctiveRecord在ruby 1.9.2和1.8.7下的性能测试测试方案:1. AR

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,?保证操作性能不变。

?

性能测试数据:

?

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

?

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

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

热点排行