Extend benchmark
[dbsrgits/DBIx-Class.git] / maint / benchmark_datafetch.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use FindBin;
7 use lib "$FindBin::Bin/../t/lib";
8 use lib "$FindBin::Bin/../lib";
9 use DBICTest;
10 use DBIx::Class::ResultClass::HashRefInflator;  # older dbic didn't load it
11
12 printf "Benchmarking DBIC version %s\n", DBIx::Class->VERSION;
13
14 my $schema = DBICTest->init_schema();
15 my $rs = $schema->resultset ('Artist');
16 $rs->populate ([ map { { name => "Art_$_"} } (1 .. 10000) ]);
17
18 use Benchmark qw/cmpthese/;
19
20 cmpthese(-5, {
21   'Cursor' => sub { $rs->reset; my @r = $rs->cursor->all },
22   'HRI' => sub { $rs->reset; my @r = $rs->search ({}, { result_class => 'DBIx::Class::ResultClass::HashRefInflator' } )->all },
23   'RowObj' => sub { $rs->reset; my @r = $rs->all },
24   'DBI' => sub { my @r = $schema->storage->_get_dbh->selectall_arrayref ('SELECT * FROM ' . ${$rs->as_query}->[0] ) },
25 });