[Dbix-class] C3 branch is just a tad faster too

Matt S Trout dbix-class at trout.me.uk
Sun Nov 20 05:13:26 CET 2005


(using the Rose::DB::Object bench.pl)

Too late to run INIT block at /usr/pkg/lib/perl5/site_perl/5.8.0/Class/C3.pm line 52.
The following comparison modules were found:

    Class::DBI
    Class::DBI::Sweet
    DBI
    DBIx::Class

Which ones would you like to compare with?

Compare with (Class::DBI, Class::DBI::Sweet, DBIx::Class): 
The following databases are configured:

    MySQL

Which one would you like to use?

Use database (MySQL): 
##
## Benchmark against Class::DBI, Class::DBI::Sweet, DBIx::Class using MySQL
##

# Simple: insert 1
      Rate CDBS CDBI DBIC RDBO
CDBS 330/s   --  -1% -34% -57%
CDBI 333/s   1%   -- -33% -57%
DBIC 500/s  51%  50%   -- -36%
RDBO 775/s 135% 133%  55%   --

# Complex: insert 1
      Rate CDBS CDBI DBIC RDBO
CDBS 333/s   --  -1% -36% -55%
CDBI 336/s   1%   -- -36% -55%
DBIC 524/s  57%  56%   -- -30%
RDBO 746/s 124% 122%  43%   --

# Simple: insert 2
      Rate CDBI CDBS DBIC RDBO
CDBI 187/s   --  -1% -43% -70%
CDBS 189/s   1%   -- -42% -69%
DBIC 328/s  76%  74%   -- -47%
RDBO 613/s 229% 225%  87%   --

# Complex: insert 2
      Rate CDBS CDBI RDBO DBIC
CDBS 205/s   --  -2% -13% -45%
CDBI 209/s   2%   -- -12% -44%
RDBO 236/s  15%  13%   -- -36%
DBIC 370/s  81%  77%  57%   --

# Simple: accessor 1
     s/iter  CDBI  CDBS  DBIC  RDBO
CDBI   1.99    --   -0%  -70%  -92%
CDBS   1.98    0%    --  -70%  -92%
DBIC  0.600  232%  231%    --  -73%
RDBO  0.162 1131% 1127%  271%    --

# Complex: accessor 1
     s/iter  CDBS  CDBI  DBIC  RDBO
CDBS   2.00    --   -1%  -71%  -91%
CDBI   1.98    1%    --  -70%  -91%
DBIC  0.588  240%  236%    --  -71%
RDBO  0.173 1056% 1043%  240%    --

# Simple: accessor 2
     s/iter  CDBI  CDBS  DBIC  RDBO
CDBI   8.89    --   -0%  -72%  -94%
CDBS   8.86    0%    --  -72%  -94%
DBIC   2.50  255%  254%    --  -79%
RDBO  0.516 1623% 1617%  385%    --

# Complex: accessor 2
     s/iter CDBS CDBI DBIC RDBO
CDBS   8.90   --  -0% -70% -88%
CDBI   8.90   0%   -- -70% -88%
DBIC   2.69 231% 231%   -- -62%
RDBO   1.03 764% 764% 161%   --

# Simple: load 1
      Rate CDBS CDBI DBIC RDBO
CDBS 259/s   -- -33% -45% -58%
CDBI 385/s  48%   -- -18% -37%
DBIC 469/s  81%  22%   -- -23%
RDBO 610/s 135%  59%  30%   --

# Simple: load 2
      Rate CDBS CDBI DBIC RDBO
CDBS 187/s   -- -24% -54% -60%
CDBI 245/s  31%   -- -40% -48%
DBIC 410/s 119%  67%   -- -13%
RDBO 469/s 151%  92%  15%   --

# Complex: load 2
      Rate CDBS CDBI DBIC RDBO
CDBS 132/s   -- -18% -68% -72%
CDBI 161/s  22%   -- -61% -66%
DBIC 413/s 213% 157%   -- -13%
RDBO 474/s 259% 195%  15%   --

# Simple: load 3
      Rate CDBS CDBI DBIC RDBO
CDBS 130/s   -- -15% -23% -48%
CDBI 154/s  18%   --  -9% -38%
DBIC 170/s  30%  10%   -- -32%
RDBO 249/s  91%  62%  47%   --

# Complex: load 3
      Rate CDBS CDBI DBIC RDBO
CDBS 100/s   -- -12% -43% -58%
CDBI 114/s  14%   -- -35% -52%
DBIC 175/s  74%  53%   -- -27%
RDBO 238/s 137% 109%  36%   --

# Simple: update 1
      Rate CDBS CDBI DBIC RDBO
CDBS 147/s   -- -19% -35% -57%
CDBI 181/s  23%   -- -19% -47%
DBIC 224/s  53%  24%   -- -35%
RDBO 342/s 134%  90%  53%   --

# Simple: update 2
      Rate CDBS CDBI DBIC RDBO
CDBS 115/s   -- -19% -44% -60%
CDBI 142/s  23%   -- -31% -51%
DBIC 207/s  80%  46%   -- -28%
RDBO 288/s 150% 102%  39%   --

# Complex: update 2
       Rate CDBS CDBI RDBO DBIC
CDBS 73.8/s   -- -10% -53% -61%
CDBI 81.6/s  11%   -- -48% -57%
RDBO  158/s 114%  93%   -- -16%
DBIC  188/s 155% 130%  19%   --

# Simple: search 1
       Rate CDBS CDBI RDBO DBIC
CDBS 1.31/s   -- -12% -52% -61%
CDBI 1.48/s  13%   -- -45% -56%
RDBO 2.71/s 107%  83%   -- -20%
DBIC 3.37/s 157% 128%  24%   --

# Simple: search 2
     s/iter CDBS CDBI DBIC RDBO
CDBS   2.09   -- -10% -70% -71%
CDBI   1.89  11%   -- -66% -68%
DBIC  0.633 230% 198%   --  -4%
RDBO  0.607 245% 211%   4%   --

# Complex: search 2
     s/iter  CDBS  CDBI  RDBO  DBIC
CDBS   9.32    --   -5%  -92%  -93%
CDBI   8.86    5%    --  -91%  -93%
RDBO  0.791 1078% 1019%    --  -22%
DBIC  0.617 1411% 1337%   28%    --

# Simple: search with limit and offset
       Rate CDBS DBIC RDBO
CDBS 42.3/s   -- -41% -51%
DBIC 71.3/s  69%   -- -17%
RDBO 86.3/s 104%  21%   --

# Complex: search with limit and offset
       Rate CDBS DBIC RDBO
CDBS 8.32/s   -- -88% -88%
DBIC 70.1/s 743%   --  -1%
RDBO 70.7/s 750%   1%   --

# Making indexes...

# Simple: search with 1-to-1 sub-objects
     s/iter CDBS CDBI DBIC RDBO
CDBS   2.88   -- -18% -58% -64%
CDBI   2.36  22%   -- -48% -57%
DBIC   1.22 136%  94%   -- -16%
RDBO   1.03 181% 130%  19%   --

# Complex: search with 1-to-1 sub-objects
     s/iter CDBS CDBI RDBO DBIC
CDBS   10.6   -- -10% -88% -89%
CDBI   9.61  11%   -- -87% -87%
RDBO   1.25 752% 671%   --  -3%
DBIC   1.21 781% 697%   3%   --

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

# Simple: search with 1-to-1 and 1-to-n sub-objects
       Rate DBIC CDBS CDBI RDBO
DBIC 10.5/s   --  -9% -22% -73%
CDBS 11.6/s  10%   -- -14% -70%
CDBI 13.5/s  29%  17%   -- -65%
RDBO 38.8/s 269% 235% 187%   --

# Complex: search with 1-to-1 and 1-to-n sub-objects
       Rate CDBS CDBI DBIC RDBO
CDBS 8.81/s   -- -10% -40% -77%
CDBI 9.77/s  11%   -- -34% -74%
DBIC 14.8/s  68%  51%   -- -61%
RDBO 37.5/s 326% 284% 154%   --

# Simple: iterate 1
       Rate CDBS CDBI RDBO DBIC
CDBS 1.01/s   --  -8% -58% -60%
CDBI 1.10/s   9%   -- -54% -57%
RDBO 2.40/s 137% 118%   --  -6%
DBIC 2.54/s 151% 131%   6%   --

# Complex: iterate 1
       Rate CDBS CDBI RDBO DBIC
CDBS 1.01/s   --  -8% -57% -60%
CDBI 1.10/s   9%   -- -53% -57%
RDBO 2.34/s 131% 112%   --  -8%
DBIC 2.54/s 151% 131%   9%   --

# Simple: iterate 2
     s/iter CDBS CDBI DBIC RDBO
CDBS   2.36   --  -7% -69% -73%
CDBI   2.19   8%   -- -66% -71%
DBIC  0.740 218% 196%   -- -15%
RDBO  0.630 274% 248%  17%   --

# Complex: iterate 2
     s/iter  CDBS  CDBI  RDBO  DBIC
CDBS   10.1    --   -3%  -92%  -93%
CDBI   9.71    4%    --  -91%  -92%
RDBO  0.845 1089% 1049%    --  -13%
DBIC  0.733 1271% 1225%   15%    --

# Simple: iterate 3
     s/iter CDBI CDBS DBIC RDBO
CDBI   7.99   -- -59% -83% -87%
CDBS   3.27 144%   -- -59% -68%
DBIC   1.34 496% 144%   -- -22%
RDBO   1.04 665% 213%  28%   --

# Complex: iterate 3
     s/iter  CDBI  CDBS  DBIC  RDBO
CDBI   15.9    --  -28%  -92%  -92%
CDBS   11.4   39%    --  -88%  -89%
DBIC   1.33 1097%  761%    --   -3%
RDBO   1.28 1139%  791%    4%    --

# Dropping indexes...

# Simple: delete
      Rate CDBS CDBI DBIC RDBO
CDBS 163/s   -- -19% -32% -80%
CDBI 202/s  24%   -- -16% -75%
DBIC 239/s  47%  19%   -- -71%
RDBO 813/s 400% 303% 240%   --

# Complex: delete
       Rate  CDBS  CDBI  DBIC  RDBO
CDBS 69.9/s    --  -16%  -69%  -91%
CDBI 83.6/s   20%    --  -62%  -90%
DBIC  222/s  218%  166%    --  -73%
RDBO  820/s 1073%  880%  269%    --

-- 
     Matt S Trout       Specialists in Perl consulting, web development, and
  Technical Director    UNIX/Linux systems architecture and automation. Mail
Shadowcat Systems Ltd.  mst (at) shadowcatsystems.co.uk for more information

 + Help us build a better perl ORM: http://dbix-class.shadowcatsystems.co.uk/ +



More information about the Dbix-class mailing list