My favorites | Sign in
Project Logo
                
Search
for
Updated Jan 24, 2009 by siracusa
RDBOBenchmarks  
Benchmark results for Rose::DB::Object.

Rose::DB::Object Benchmarks

The results below are from a run on my personal system (2x2.8GHz Xeon 5400) on January 24, 2009.

(These benchmarks are very sensibly done, and I tend to use them as a way to check the performance impact of updates to DBIx::Class. Props and thanks to Siracusa for providing them. -- Matt S Trout, DBIx::Class project founder.)

In case it isn't obvious, the modules are abbreviated like this:

CDBI - Class::DBI
CDBS - Class::DBI::Sweet
DBIC - DBIx::Class
RDBO - Rose::DB::Object

To see how these modules fare against raw DBI, check the results that include DBI.

% ./bench.pl --cmp Class::DBI,Class::DBI::Sweet,DBIx::Class --db mysql --iterations 4000 --cpu 10 --skip-intro

##
## Benchmark against Class::DBI, Class::DBI::Sweet, DBIx::Class using MySQL
##

Module             Version
-----------------  -------
Class::DBI         3.0.17
Class::DBI::Sweet  0.09
DBIx::Class        0.08010
Rose::DB::Object   0.777

# Simple: insert 1
       Rate CDBS CDBI DBIC RDBO
CDBS 2000/s   --  -3% -26% -69%
CDBI 2062/s   3%   -- -23% -69%
DBIC 2685/s  34%  30%   -- -59%
RDBO 6557/s 228% 218% 144%   --

# Complex: insert 1
       Rate CDBS CDBI DBIC RDBO
CDBS 1932/s   --  -4% -28% -67%
CDBI 2020/s   5%   -- -25% -66%
DBIC 2685/s  39%  33%   -- -54%
RDBO 5882/s 204% 191% 119%   --

# Simple: insert 2
       Rate CDBS CDBI DBIC RDBO
CDBS 1087/s   --  -2% -29% -80%
CDBI 1105/s   2%   -- -28% -79%
DBIC 1527/s  40%  38%   -- -71%
RDBO 5333/s 391% 383% 249%   --

# Complex: insert 2
       Rate CDBS CDBI DBIC RDBO
CDBS 1205/s   --  -5% -32% -76%
CDBI 1262/s   5%   -- -29% -75%
DBIC 1770/s  47%  40%   -- -65%
RDBO 5000/s 315% 296% 182%   --

# Simple: accessor 1
       Rate  CDBI  CDBS  DBIC  RDBO
CDBI 2.43/s    --  -13%  -87%  -95%
CDBS 2.79/s   15%    --  -85%  -94%
DBIC 18.7/s  666%  569%    --  -61%
RDBO 47.3/s 1843% 1596%  154%    --

# Complex: accessor 1
       Rate  CDBS  CDBI  DBIC  RDBO
CDBS 2.83/s    --   -0%  -85%  -94%
CDBI 2.84/s    0%    --  -85%  -94%
DBIC 18.7/s  561%  559%    --  -60%
RDBO 47.1/s 1563% 1557%  152%    --

# Simple: accessor 2
       s/iter  CDBI  CDBS  DBIC  RDBO
CDBI     1.56    --   -0%  -85%  -95%
CDBS     1.55    0%    --  -85%  -95%
DBIC    0.227  586%  586%    --  -67%
RDBO 7.54e-02 1964% 1962%  201%    --

# Complex: accessor 2
     s/iter CDBS CDBI DBIC RDBO
CDBS   1.55   --  -1% -58% -90%
CDBI   1.55   1%   -- -57% -90%
DBIC  0.660 135% 134%   -- -77%
RDBO  0.155 904% 899% 326%   --

# Simple: load 1
       Rate CDBS DBIC CDBI RDBO
CDBS 1852/s   -- -27% -28% -67%
DBIC 2532/s  37%   --  -1% -55%
CDBI 2564/s  38%   1%   -- -54%
RDBO 5634/s 204% 123% 120%   --

# Simple: load 2
       Rate CDBS CDBI DBIC RDBO
CDBS 1389/s   -- -25% -36% -70%
CDBI 1860/s  34%   -- -14% -60%
DBIC 2174/s  57%  17%   -- -54%
RDBO 4706/s 239% 153% 116%   --

# Complex: load 2
       Rate CDBS CDBI DBIC RDBO
CDBS  964/s   -- -21% -56% -78%
CDBI 1227/s  27%   -- -44% -72%
DBIC 2198/s 128%  79%   -- -50%
RDBO 4396/s 356% 258% 100%   --

# Simple: load 3
       Rate DBIC CDBS CDBI RDBO
DBIC  688/s   -- -29% -40% -72%
CDBS  971/s  41%   -- -16% -60%
CDBI 1149/s  67%  18%   -- -53%
RDBO 2424/s 252% 150% 111%   --

# Complex: load 3
       Rate CDBS DBIC CDBI RDBO
CDBS  733/s   --  -1% -16% -68%
DBIC  741/s   1%   -- -15% -68%
CDBI  873/s  19%  18%   -- -62%
RDBO 2312/s 216% 212% 165%   --

# Simple: update 1
       Rate CDBS DBIC CDBI RDBO
CDBS 1039/s   -- -19% -20% -67%
DBIC 1278/s  23%   --  -2% -59%
CDBI 1303/s  25%   2%   -- -58%
RDBO 3125/s 201% 145% 140%   --

# Simple: update 2
       Rate CDBS CDBI DBIC RDBO
CDBS  857/s   -- -17% -22% -69%
CDBI 1036/s  21%   --  -5% -62%
DBIC 1093/s  28%   5%   -- -60%
RDBO 2721/s 218% 163% 149%   --

# Complex: update 2
       Rate CDBS CDBI DBIC RDBO
CDBS  533/s   --  -6% -51% -78%
CDBI  566/s   6%   -- -48% -77%
DBIC 1084/s 104%  92%   -- -56%
RDBO 2439/s 358% 331% 125%   --

# Simple: search 1
      Rate DBIC CDBS CDBI RDBO
DBIC 130/s   --  -1% -10% -62%
CDBS 131/s   1%   --  -9% -61%
CDBI 145/s  12%  10%   -- -57%
RDBO 337/s 160% 157% 133%   --

# Simple: search 2
       Rate CDBS CDBI DBIC RDBO
CDBS 50.1/s   --  -7% -41% -72%
CDBI 54.0/s   8%   -- -37% -70%
DBIC 85.6/s  71%  59%   -- -52%
RDBO  177/s 254% 228% 107%   --

# Complex: search 2
       Rate  CDBS  CDBI  DBIC  RDBO
CDBS 9.95/s    --   -1%  -88%  -93%
CDBI 10.1/s    1%    --  -88%  -92%
DBIC 85.9/s  763%  753%    --  -36%
RDBO  134/s 1245% 1228%   56%    --

# Simple: search with limit and offset
       Rate CDBS DBIC RDBO
CDBS 50.3/s   -- -41% -71%
DBIC 85.5/s  70%   -- -51%
RDBO  176/s 250% 106%   --

# Complex: search with limit and offset
       Rate  CDBS  DBIC  RDBO
CDBS 10.0/s    --  -88%  -93%
DBIC 86.1/s  757%    --  -36%
RDBO  134/s 1234%   56%    --

# Making indexes...

# Simple: search with 1-to-1 sub-objects
       Rate DBIC CDBS CDBI RDBO
DBIC 23.3/s   -- -44% -47% -90%
CDBS 41.4/s  78%   --  -6% -81%
CDBI 44.1/s  89%   6%   -- -80%
RDBO  223/s 855% 438% 405%   --

# Complex: search with 1-to-1 sub-objects
       Rate  CDBS  CDBI  DBIC  RDBO
CDBS 9.39/s    --   -2%  -60%  -96%
CDBI 9.57/s    2%    --  -59%  -96%
DBIC 23.3/s  148%  143%    --  -90%
RDBO  222/s 2269% 2224%  854%    --

# Inserting 1-to-n records.....

# Simple: search with 1-to-1 and 1-to-n sub-objects
     s/iter CDBS CDBI DBIC RDBO
CDBS   3.13   -- -13% -16% -87%
CDBI   2.72  15%   --  -3% -85%
DBIC   2.63  19%   3%   -- -84%
RDBO  0.410 664% 563% 543%   --

# Complex: search with 1-to-1 and 1-to-n sub-objects
     s/iter CDBS CDBI DBIC RDBO
CDBS   4.51   --  -6% -38% -90%
CDBI   4.23   7%   -- -34% -90%
DBIC   2.79  62%  52%   -- -84%
RDBO  0.441 923% 858% 532%   --

# Simple: iterate 1
       Rate DBIC CDBS CDBI RDBO
DBIC 84.6/s   -- -15% -21% -69%
CDBS 99.7/s  18%   --  -7% -64%
CDBI  107/s  26%   7%   -- -61%
RDBO  275/s 225% 176% 158%   --

# Complex: iterate 1
       Rate DBIC CDBS CDBI RDBO
DBIC 84.0/s   -- -17% -22% -69%
CDBS  101/s  20%   --  -7% -63%
CDBI  108/s  29%   7%   -- -61%
RDBO  274/s 226% 172% 153%   --

# Simple: iterate 2
       Rate CDBS CDBI DBIC RDBO
CDBS 43.6/s   --  -8% -25% -72%
CDBI 47.1/s   8%   -- -18% -70%
DBIC 57.7/s  32%  22%   -- -63%
RDBO  156/s 258% 231% 170%   --

# Complex: iterate 2
       Rate  CDBI  CDBS  DBIC  RDBO
CDBI 9.73/s    --   -1%  -83%  -92%
CDBS 9.84/s    1%    --  -83%  -92%
DBIC 57.8/s  494%  488%    --  -52%
RDBO  120/s 1138% 1125%  108%    --

# Simple: iterate 3
       Rate CDBS CDBI DBIC RDBO
CDBS 18.5/s   --  -2%  -9% -82%
CDBI 18.9/s   2%   --  -7% -81%
DBIC 20.4/s  10%   8%   -- -80%
RDBO  100/s 441% 431% 392%   --

# Complex: iterate 3
       Rate  CDBS  CDBI  DBIC  RDBO
CDBS 7.25/s    --   -2%  -65%  -91%
CDBI 7.37/s    2%    --  -64%  -91%
DBIC 20.7/s  185%  181%    --  -75%
RDBO 84.2/s 1061% 1042%  307%    --

# Dropping indexes...

# Simple: delete
       Rate CDBS DBIC CDBI RDBO
CDBS 1227/s   -- -17% -17% -84%
DBIC 1487/s  21%   --  -0% -81%
CDBI 1487/s  21%   0%   -- -81%
RDBO 7843/s 539% 427% 427%   --

# Complex: delete
       Rate  CDBS  CDBI  DBIC  RDBO
CDBS  684/s    --  -15%  -47%  -91%
CDBI  806/s   18%    --  -38%  -90%
DBIC 1299/s   90%   61%    --  -83%
RDBO 7843/s 1047%  873%  504%    --

# Simple: insert or update
       Rate CDBS DBIC CDBI RDBO
CDBS  973/s   -- -19% -20% -79%
DBIC 1208/s  24%   --  -1% -74%
CDBI 1223/s  26%   1%   -- -74%
RDBO 4706/s 384% 289% 285%   --

# Complex: insert or update
       Rate DBIC RDBO
DBIC  980/s   -- -76%
RDBO 4040/s 312%   --

Sign in to add a comment
Hosted by Google Code