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