← Index
NYTProf Performance Profile   « line view »
For script/ponapi
  Run on Wed Feb 10 15:51:26 2016
Reported on Thu Feb 11 09:43:11 2016

Filename/home/mickey/git_tree/PONAPI/Server/lib/Test/PONAPI/Repository/MockDB/Loader.pm
StatementsExecuted 19 statements in 1.18ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
111482µs666msTest::PONAPI::Repository::MockDB::Loader::::loadTest::PONAPI::Repository::MockDB::Loader::load
11122µs1.18msTest::PONAPI::Repository::MockDB::Loader::::_build_dbhTest::PONAPI::Repository::MockDB::Loader::_build_dbh
11120µs3.33msTest::PONAPI::Repository::MockDB::Loader::::BEGIN@4Test::PONAPI::Repository::MockDB::Loader::BEGIN@4
11111µs30µsTest::PONAPI::Repository::MockDB::Loader::::BEGIN@6Test::PONAPI::Repository::MockDB::Loader::BEGIN@6
11111µs343µsTest::PONAPI::Repository::MockDB::Loader::::_build_dbdTest::PONAPI::Repository::MockDB::Loader::_build_dbd
11110µs34µsTest::PONAPI::Repository::MockDB::Loader::::BEGIN@14Test::PONAPI::Repository::MockDB::Loader::BEGIN@14
1118µs86µsTest::PONAPI::Repository::MockDB::Loader::::BEGIN@98Test::PONAPI::Repository::MockDB::Loader::BEGIN@98
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# ABSTRACT: mock repository loader
2package Test::PONAPI::Repository::MockDB::Loader;
3
4254µs26.63ms
# spent 3.33ms (20µs+3.31) within Test::PONAPI::Repository::MockDB::Loader::BEGIN@4 which was called: # once (20µs+3.31ms) by Test::PONAPI::Repository::MockDB::BEGIN@10 at line 4
use Moose;
# spent 3.33ms making 1 call to Test::PONAPI::Repository::MockDB::Loader::BEGIN@4 # spent 3.31ms making 1 call to Moose::import
5
6246µs248µs
# spent 30µs (11+19) within Test::PONAPI::Repository::MockDB::Loader::BEGIN@6 which was called: # once (11µs+19µs) by Test::PONAPI::Repository::MockDB::BEGIN@10 at line 6
use DBI;
# spent 30µs making 1 call to Test::PONAPI::Repository::MockDB::Loader::BEGIN@6 # spent 19µs making 1 call to Exporter::import
7
811µs16.57mshas dbd => (
# spent 6.57ms making 1 call to Moose::has
9 is => 'ro',
10 isa => 'Str',
11 builder => '_build_dbd',
12);
13
142246µs257µs
# spent 34µs (10+23) within Test::PONAPI::Repository::MockDB::Loader::BEGIN@14 which was called: # once (10µs+23µs) by Test::PONAPI::Repository::MockDB::BEGIN@10 at line 14
use File::Temp qw/tempfile/;
# spent 34µs making 1 call to Test::PONAPI::Repository::MockDB::Loader::BEGIN@14 # spent 24µs making 1 call to Exporter::import
15
# spent 343µs (11+332) within Test::PONAPI::Repository::MockDB::Loader::_build_dbd which was called: # once (11µs+332µs) by Test::PONAPI::Repository::MockDB::Loader::new at line 45 of (eval 45)[Eval/Closure.pm:144]
sub _build_dbd {
1613µs1323µs my ($fh, $path) = tempfile("MockDB.db.XXXXXXX", TMPDIR => 1, UNLINK => 1);
# spent 323µs making 1 call to File::Temp::tempfile
17114µs110µs close $fh;
1814µs return "DBI:SQLite:dbname=$path";
19}
20
2112µs12.35mshas dbh => (
# spent 2.35ms making 1 call to Moose::has
22 is => 'ro',
23 isa => 'DBI::db',
24 lazy => 1,
25 builder => '_build_dbh',
26);
27
28
# spent 1.18ms (22µs+1.15) within Test::PONAPI::Repository::MockDB::Loader::_build_dbh which was called: # once (22µs+1.15ms) by Test::PONAPI::Repository::MockDB::Loader::dbh at line 12 of (eval 45)[Eval/Closure.pm:144]
sub _build_dbh {
29110µs my $self = shift;
30110µs21.15ms DBI->connect( $self->dbd, '', '', { RaiseError => 1 } )
# spent 1.15ms making 1 call to DBI::connect # spent 3µs making 1 call to Test::PONAPI::Repository::MockDB::Loader::dbd
31 or die $DBI::errstr;
32}
33
34
# spent 666ms (482µs+665) within Test::PONAPI::Repository::MockDB::Loader::load which was called: # once (482µs+665ms) by Test::PONAPI::Repository::MockDB::BUILD at line 43 of lib/Test/PONAPI/Repository/MockDB.pm
sub load {
351300ns my $self = shift;
36
371739µs691.33s $self->dbh->do($_) for
# spent 664ms making 23 calls to DBI::db::do, avg 28.9ms/call # spent 663ms making 23 calls to DBD::SQLite::db::do, avg 28.8ms/call # spent 1.50ms making 23 calls to Test::PONAPI::Repository::MockDB::Loader::dbh, avg 65µs/call
38 q< DROP TABLE IF EXISTS articles; >,
39 q< CREATE TABLE IF NOT EXISTS articles (
40 id INTEGER PRIMARY KEY AUTOINCREMENT,
41 title CHAR(64) NOT NULL,
42 body TEXT NOT NULL,
43 created DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
44 updated DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
45 status CHAR(10) NOT NULL DEFAULT "pending approval" ); >,
46
47 map(qq< INSERT INTO articles (title, body, created, updated, status) VALUES $_>,
48 q<("JSON API paints my bikeshed!", "The shortest article. Ever.",
49 "2015-05-22 14:56:29", "2015-05-22 14:56:29", "ok" )>,
50 q<("A second title", "The 2nd shortest article. Ever.",
51 "2015-06-22 14:56:29", "2015-06-22 14:56:29", "ok" )>,
52 q<("a third one", "The 3rd shortest article. Ever.",
53 "2015-07-22 14:56:29", "2015-07-22 14:56:29", "pending approval" ); >),
54
55 q< DROP TABLE IF EXISTS people; >,
56 q< CREATE TABLE IF NOT EXISTS people (
57 id INTEGER PRIMARY KEY,
58 name CHAR(64) NOT NULL DEFAULT "anonymous",
59 age INTEGER NOT NULL DEFAULT "100",
60 gender CHAR(10) NOT NULL DEFAULT "unknown" ); >,
61
62 map(qq< INSERT INTO people (id, name, age, gender) VALUES $_>,
63 q<(42, "John", 80, "male")>,
64 q<(88, "Jimmy", 18, "male")>,
65 q<(91, "Diana", 30, "female")>),
66
67 q< DROP TABLE IF EXISTS rel_articles_people; >,
68 q< CREATE TABLE IF NOT EXISTS rel_articles_people (
69 id_articles INTEGER NOT NULL PRIMARY KEY,
70 id_people INTEGER NOT NULL
71 ); >,
72
73 map(qq< INSERT INTO rel_articles_people (id_articles, id_people) VALUES $_>,
74 q<(1, 42)>,
75 q<(2, 88)>,
76 q<(3, 91)>),
77
78 q< DROP TABLE IF EXISTS comments; >,
79 q< CREATE TABLE IF NOT EXISTS comments (
80 id INTEGER PRIMARY KEY,
81 body TEXT NOT NULL DEFAULT "" ); >,
82
83 map(qq< INSERT INTO comments (id, body) VALUES $_>,
84 q<(5, "First!")>,
85 q<(12, "I like XML better")>),
86
87 q< DROP TABLE IF EXISTS rel_articles_comments; >,
88 q< CREATE TABLE IF NOT EXISTS rel_articles_comments (
89 id_articles INTEGER NOT NULL,
90 id_comments INTEGER UNIQUE NOT NULL ); >,
91
92 map(qq< INSERT INTO rel_articles_comments (id_articles, id_comments) VALUES $_>,
93 q<(2, 5)>,
94 q<(2, 12)>);
95}
96
9713µs22.59ms__PACKAGE__->meta->make_immutable;
# spent 2.58ms making 1 call to Class::MOP::Class::make_immutable # spent 12µs making 1 call to Test::PONAPI::Repository::MockDB::Loader::meta
98342µs2164µs
# spent 86µs (8+78) within Test::PONAPI::Repository::MockDB::Loader::BEGIN@98 which was called: # once (8µs+78µs) by Test::PONAPI::Repository::MockDB::BEGIN@10 at line 98
no Moose; 1;
# spent 86µs making 1 call to Test::PONAPI::Repository::MockDB::Loader::BEGIN@98 # spent 78µs making 1 call to Moose::unimport
99
100__END__