Profile of lib/Test/PONAPI/Repository/MockDB/Loader.pm

← 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
Statements | Executed 19 statements in 1.18ms

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
1 | 1 | 1 | 482µs | 666ms | Test::PONAPI::Repository::MockDB::Loader::::loadTest::PONAPI::Repository::MockDB::Loader::load
1 | 1 | 1 | 22µs | 1.18ms | Test::PONAPI::Repository::MockDB::Loader::::_build_dbhTest::PONAPI::Repository::MockDB::Loader::_build_dbh
1 | 1 | 1 | 20µs | 3.33ms | Test::PONAPI::Repository::MockDB::Loader::::BEGIN@4Test::PONAPI::Repository::MockDB::Loader::BEGIN@4
1 | 1 | 1 | 11µs | 30µs | Test::PONAPI::Repository::MockDB::Loader::::BEGIN@6Test::PONAPI::Repository::MockDB::Loader::BEGIN@6
1 | 1 | 1 | 11µs | 343µs | Test::PONAPI::Repository::MockDB::Loader::::_build_dbdTest::PONAPI::Repository::MockDB::Loader::_build_dbd
1 | 1 | 1 | 10µs | 34µs | Test::PONAPI::Repository::MockDB::Loader::::BEGIN@14Test::PONAPI::Repository::MockDB::Loader::BEGIN@14
1 | 1 | 1 | 8µs | 86µs | Test::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
2 |  |  |  |  | package Test::PONAPI::Repository::MockDB::Loader;
3 |  |  |  |  |
4 | 2 | 54µs | 2 | 6.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 |  |  |  |  |
6 | 2 | 46µs | 2 | 48µ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 |  |  |  |  |
8 | 1 | 1µs | 1 | 6.57ms | has dbd => ( # spent 6.57ms making 1 call to Moose::has
9 |  |  |  |  | is => 'ro',
10 |  |  |  |  | isa => 'Str',
11 |  |  |  |  | builder => '_build_dbd',
12 |  |  |  |  | );
13 |  |  |  |  |
14 | 2 | 246µs | 2 | 57µ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 {
16 | 1 | 3µs | 1 | 323µs | my ($fh, $path) = tempfile("MockDB.db.XXXXXXX", TMPDIR => 1, UNLINK => 1); # spent 323µs making 1 call to File::Temp::tempfile
17 | 1 | 14µs | 1 | 10µs | close $fh; # spent 10µs making 1 call to Test::PONAPI::Repository::MockDB::Loader::CORE:close
18 | 1 | 4µs |  |  | return "DBI:SQLite:dbname=$path";
19 |  |  |  |  | }
20 |  |  |  |  |
21 | 1 | 2µs | 1 | 2.35ms | has 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 {
29 | 1 | 10µs |  |  | my $self = shift;
30 | 1 | 10µs | 2 | 1.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 {
35 | 1 | 300ns |  |  | my $self = shift;
36 |  |  |  |  |
37 | 1 | 739µs | 69 | 1.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 |  |  |  |  |
97 | 1 | 3µs | 2 | 2.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
98 | 3 | 42µs | 2 | 164µ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__