| Filename | /home/ss5/perl5/perlbrew/perls/perl-5.22.0/bin/benchmarkanything-storage |
| Statements | Executed 69 statements in 3.38ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 2000 | 1 | 1 | 22.4s | 22.4s | DBI::db::commit (xsub) |
| 27629 | 1 | 1 | 4.33s | 4.33s | DBI::st::execute (xsub) |
| 67264 | 26 | 5 | 409ms | 409ms | DBI::common::STORE (xsub) |
| 31629 | 3 | 1 | 134ms | 289ms | DBI::common::EXISTS (xsub) |
| 2000 | 2 | 1 | 121ms | 121ms | DBI::db::do (xsub) |
| 89213 | 12 | 5 | 108ms | 108ms | DBI::common::FETCH (xsub) |
| 18950 | 8 | 1 | 104ms | 502ms | DBI::st::fetchrow_hashref (xsub) |
| 27614 | 1 | 1 | 45.3ms | 45.3ms | DBI::st::finish (xsub) |
| 24600 | 2 | 2 | 39.8ms | 39.8ms | DBI::st::fetch (xsub) |
| 18950 | 1 | 1 | 19.4ms | 19.4ms | DBI::st::mysql_async_ready (xsub) |
| 2000 | 1 | 1 | 10.9ms | 22.4ms | DBI::st::bind_col (xsub) |
| 1000 | 1 | 1 | 9.30ms | 60.9ms | DBI::st::bind_columns (xsub) |
| 1000 | 1 | 1 | 8.22ms | 121ms | DBI::st::fetchall_arrayref (xsub) |
| 3015 | 2 | 1 | 3.15ms | 3.15ms | DBI::common::func (xsub) |
| 1 | 1 | 1 | 2.31ms | 429ms | main::_connect |
| 1028 | 1 | 1 | 2.02ms | 2.02ms | DBI::db::last_insert_id (xsub) |
| 1 | 1 | 1 | 1.47ms | 1.50ms | main::BEGIN@7 |
| 1 | 1 | 1 | 1.43ms | 7.51ms | main::BEGIN@9 |
| 1 | 1 | 1 | 339µs | 390µs | main::BEGIN@6 |
| 32 | 1 | 1 | 97µs | 97µs | DBI::common::DESTROY (xsub) |
| 1 | 1 | 1 | 86µs | 34.4ms | main::_gc |
| 179 | 3 | 1 | 57µs | 57µs | Internals::SvREADONLY (xsub) |
| 15 | 1 | 1 | 53µs | 509µs | DBI::db::prepare (xsub) |
| 1 | 1 | 1 | 50µs | 50µs | main::BEGIN@5 |
| 2 | 2 | 1 | 30µs | 438ms | main::_getopt |
| 16 | 1 | 1 | 22µs | 22µs | DBD::_mem::common::DESTROY (xsub) |
| 1 | 1 | 1 | 16µs | 506µs | main::setup |
| 1 | 1 | 1 | 16µs | 55µs | main::teardown |
| 1 | 1 | 1 | 15µs | 20µs | main::_set_defaults |
| 1 | 1 | 1 | 14µs | 53.5s | main::processqueue |
| 7 | 7 | 4 | 11µs | 11µs | main::CORE:pack (opcode) |
| 1 | 1 | 1 | 11µs | 53.0s | main::_processqueue |
| 1 | 1 | 1 | 10µs | 10µs | DBI::dr::disconnect_all (xsub) |
| 1 | 1 | 1 | 9µs | 9µs | main::engine |
| 1 | 1 | 1 | 8µs | 34µs | main::_disconnect |
| 1 | 1 | 1 | 7µs | 144µs | main::BEGIN@229 |
| 1 | 1 | 1 | 6µs | 21µs | main::add |
| 1 | 1 | 1 | 6µs | 1.13ms | DBI::dr::connect (xsub) |
| 1 | 1 | 1 | 5µs | 82µs | main::BEGIN@269 |
| 1 | 1 | 1 | 5µs | 96µs | main::BEGIN@237 |
| 1 | 1 | 1 | 5µs | 80µs | main::BEGIN@261 |
| 1 | 1 | 1 | 5µs | 82µs | main::BEGIN@286 |
| 2 | 2 | 1 | 5µs | 5µs | main::CORE:match (opcode) |
| 1 | 1 | 1 | 5µs | 84µs | main::BEGIN@245 |
| 1 | 1 | 1 | 5µs | 81µs | main::BEGIN@295 |
| 1 | 1 | 1 | 5µs | 83µs | main::BEGIN@304 |
| 1 | 1 | 1 | 4µs | 81µs | main::BEGIN@312 |
| 1 | 1 | 1 | 4µs | 4µs | version::(bool (xsub) |
| 1 | 1 | 1 | 4µs | 85µs | main::BEGIN@253 |
| 1 | 1 | 1 | 4µs | 89µs | main::BEGIN@277 |
| 1 | 1 | 1 | 2µs | 2µs | version::(cmp (xsub) |
| 1 | 1 | 1 | 2µs | 2µs | DBI::db::connected (xsub) |
| 0 | 0 | 0 | 0s | 0s | main::RUNTIME |
| 0 | 0 | 0 | 0s | 0s | main::_add |
| 0 | 0 | 0 | 0s | 0s | main::_createdb |
| 0 | 0 | 0 | 0s | 0s | main::_init |
| 0 | 0 | 0 | 0s | 0s | main::_init_search_engine |
| 0 | 0 | 0 | 0s | 0s | main::_listkeys |
| 0 | 0 | 0 | 0s | 0s | main::_listnames |
| 0 | 0 | 0 | 0s | 0s | main::_read_in |
| 0 | 0 | 0 | 0s | 0s | main::_search |
| 0 | 0 | 0 | 0s | 0s | main::_stats |
| 0 | 0 | 0 | 0s | 0s | main::_sync_search_engine |
| 0 | 0 | 0 | 0s | 0s | main::_write_out |
| 0 | 0 | 0 | 0s | 0s | main::createdb |
| 0 | 0 | 0 | 0s | 0s | main::gc |
| 0 | 0 | 0 | 0s | 0s | main::help |
| 0 | 0 | 0 | 0s | 0s | main::init |
| 0 | 0 | 0 | 0s | 0s | main::initsearch |
| 0 | 0 | 0 | 0s | 0s | main::listkeys |
| 0 | 0 | 0 | 0s | 0s | main::listnames |
| 0 | 0 | 0 | 0s | 0s | main::search |
| 0 | 0 | 0 | 0s | 0s | main::stats |
| 0 | 0 | 0 | 0s | 0s | main::syncsearch |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 0 | 6 | 3.26ms | Profile data that couldn't be associated with a specific line: # spent 3.07ms making 1 call to Attribute::Handlers::CHECK
# spent 61µs making 1 call to Attribute::Handlers::END
# spent 58µs making 1 call to DBI::END
# spent 57µs making 1 call to Attribute::Handlers::INIT
# spent 3µs making 1 call to Class::XSAccessor::END
# spent 3µs making 1 call to Cpanel::JSON::XS::END | ||
| 1 | 1 | 56µs | #!/home/ss5/perl5/perlbrew/perls/perl-5.22.0/bin/perl | ||
| 2 | # PODNAME: benchmarkanything-storage | ||||
| 3 | # ABSTRACT: BenchmarkAnything storage cmdline tool | ||||
| 4 | |||||
| 5 | 2 | 75µs | 1 | 50µs | # spent 50µs within main::BEGIN@5 which was called:
# once (50µs+0s) by main::NULL at line 5 # spent 50µs making 1 call to main::BEGIN@5 |
| 6 | 2 | 213µs | 2 | 393µs | # spent 390µs (339+51) within main::BEGIN@6 which was called:
# once (339µs+51µs) by main::NULL at line 6 # spent 390µs making 1 call to main::BEGIN@6
# spent 2µs making 1 call to strict::import |
| 7 | 2 | 1.40ms | 2 | 1.50ms | # spent 1.50ms (1.47+24µs) within main::BEGIN@7 which was called:
# once (1.47ms+24µs) by main::NULL at line 7 # spent 1.50ms making 1 call to main::BEGIN@7
# spent 5µs making 1 call to warnings::import |
| 8 | |||||
| 9 | 2 | 421µs | 2 | 7.52ms | # spent 7.51ms (1.43+6.08) within main::BEGIN@9 which was called:
# once (1.43ms+6.08ms) by main::NULL at line 9 # spent 7.51ms making 1 call to main::BEGIN@9
# spent 2µs making 1 call to App::Rad::import |
| 10 | |||||
| 11 | ###################################################################### | ||||
| 12 | # | ||||
| 13 | # App::Rad interface | ||||
| 14 | # | ||||
| 15 | ###################################################################### | ||||
| 16 | |||||
| 17 | 1 | 7µs | 49 | 53.5s | App::Rad->run(); # spent 53.5s making 1 call to App::Rad::run
# spent 97µs making 32 calls to DBI::common::DESTROY, avg 3µs/call
# spent 22µs making 16 calls to DBD::_mem::common::DESTROY, avg 1µs/call |
| 18 | |||||
| 19 | sub setup | ||||
| 20 | # spent 506µs (16+490) within main::setup which was called:
# once (16µs+490µs) by App::Rad::run at line 366 of App/Rad.pm | ||||
| 21 | 1 | 400ns | my $c = shift; | ||
| 22 | 1 | 2µs | 1 | 10µs | $c->unregister_command("help"); # spent 10µs making 1 call to App::Rad::unregister_command |
| 23 | 1 | 3µs | 1 | 459µs | $c->register_commands("help", "search", "add", "createdb", "listnames", "listkeys", "stats", "processqueue", "initsearch", "syncsearch", "gc", "init"); # spent 459µs making 1 call to App::Rad::register_commands |
| 24 | 1 | 2µs | 1 | 12µs | $c->register('search-sync' => \&syncsearch); # spent 12µs making 1 call to App::Rad::register |
| 25 | 1 | 4µs | 1 | 10µs | $c->register('search-init' => \&initsearch); # spent 10µs making 1 call to App::Rad::register |
| 26 | } | ||||
| 27 | |||||
| 28 | sub teardown | ||||
| 29 | # spent 55µs (16+40) within main::teardown which was called:
# once (16µs+40µs) by App::Rad::run at line 376 of App/Rad.pm | ||||
| 30 | 1 | 400ns | my $c = shift; | ||
| 31 | |||||
| 32 | 1 | 14µs | 3 | 40µs | _disconnect($c) unless $c->cmd =~ /^init|help$/; # spent 34µs making 1 call to main::_disconnect
# spent 3µs making 1 call to main::CORE:match
# spent 3µs making 1 call to App::Rad::cmd |
| 33 | } | ||||
| 34 | |||||
| 35 | sub help | ||||
| 36 | { | ||||
| 37 | my ($c) = @_; | ||||
| 38 | |||||
| 39 | return qq{benchmarkanything-storage | ||||
| 40 | [-i|--intype <TYPE>] | ||||
| 41 | [-o|--outtype <TYPE>] | ||||
| 42 | [-s|--separator <SEPARATOR>] | ||||
| 43 | [--fb] | ||||
| 44 | [--fi] | ||||
| 45 | [-c|--cfgfile <FILE>] | ||||
| 46 | [--debug] | ||||
| 47 | [-d|--data] | ||||
| 48 | [-f|--force] | ||||
| 49 | [-v|--verbose] | ||||
| 50 | [--skipvalidation] | ||||
| 51 | [--queuemode] | ||||
| 52 | [--startid <VALUE_ID>] | ||||
| 53 | [--bulkcount <COUNT>] | ||||
| 54 | [-p|--pattern <PATTERN>] | ||||
| 55 | [--id <VALUE_ID>] | ||||
| 56 | [--really <DSN>] | ||||
| 57 | [init|search|add|createdb|listnames|listkeys|stats|processqueue|search-init|search-sync|gc] | ||||
| 58 | <DATAFILE> | ||||
| 59 | |||||
| 60 | Sub commands: | ||||
| 61 | |||||
| 62 | init - Initialize a local BenchmarkAnything setup. | ||||
| 63 | |||||
| 64 | search - Search BenchmarkAnything data. | ||||
| 65 | |||||
| 66 | add - Add one or more BenchmarkAnything entries. | ||||
| 67 | |||||
| 68 | createdb - Drop and create tables in the backend store. | ||||
| 69 | |||||
| 70 | listnames - List existing metric names. | ||||
| 71 | |||||
| 72 | listkeys - List existing additional key names. | ||||
| 73 | |||||
| 74 | stats - Show counts of data points, metrics, keys, etc. | ||||
| 75 | |||||
| 76 | processqueue - Works on the result queue created by add --queuemode. | ||||
| 77 | |||||
| 78 | search-init - Initializes the configured search engine (Elasticsearch). | ||||
| 79 | |||||
| 80 | search-sync - Syncs the DB with the configured search engine (Elasticsearch). | ||||
| 81 | |||||
| 82 | gc - Garbage collects artefacts in the backend store. | ||||
| 83 | |||||
| 84 | |||||
| 85 | Options: | ||||
| 86 | |||||
| 87 | -i | ||||
| 88 | --intype - input format | ||||
| 89 | [json(default), yaml, dumper] | ||||
| 90 | -o | ||||
| 91 | --outtype - output format | ||||
| 92 | [json(default), yaml, dumper] | ||||
| 93 | |||||
| 94 | -s | ||||
| 95 | --separator - sub entry separator for output format 'flat' | ||||
| 96 | (default=;) | ||||
| 97 | |||||
| 98 | --fb - on output format 'flat' use [brackets] around | ||||
| 99 | outer arrays | ||||
| 100 | |||||
| 101 | --fi - on output format 'flat' prefix outer array lines | ||||
| 102 | with index | ||||
| 103 | |||||
| 104 | -c | ||||
| 105 | --cfgfile - config file for storage backend | ||||
| 106 | |||||
| 107 | -p | ||||
| 108 | --pattern - pattern for 'listnames'/'listkeys' commands (using LIKE) | ||||
| 109 | |||||
| 110 | --id - search id for 'search' command. When given, | ||||
| 111 | other queries are ignored and the result point | ||||
| 112 | is returned with all additional key/value fields. | ||||
| 113 | |||||
| 114 | --queuemode - used for 'add' command; values are just enqueued | ||||
| 115 | for later actual processing. This lets | ||||
| 116 | 'add' return quicker, gives higher throughput. | ||||
| 117 | |||||
| 118 | -b | ||||
| 119 | --backend - backend ['sql' (default)] | ||||
| 120 | |||||
| 121 | --debug - Pass through 'debug' option to used modules | ||||
| 122 | |||||
| 123 | --verbose - print what's going on | ||||
| 124 | |||||
| 125 | --force - Force the respective command | ||||
| 126 | + for 'search-init' it means to delete and re-create the index | ||||
| 127 | + for 'search-sync' it means to (re-)index all | ||||
| 128 | |||||
| 129 | --startid - Starting VALUE_ID for 'search-sync' (default 1). | ||||
| 130 | |||||
| 131 | --bulkcount - Chunk size for 'search-sync' (default 10000) | ||||
| 132 | or for 'processqueue' (default 100). | ||||
| 133 | |||||
| 134 | --skipvalidation - Disables schema validation checking, | ||||
| 135 | usually for 'add' command. | ||||
| 136 | |||||
| 137 | --really - used for 'createdb' command. | ||||
| 138 | Avoids the 'Are you sure?' question. You need to | ||||
| 139 | provide the DSN from config that createdb would use, | ||||
| 140 | to avoid painful mistakes. | ||||
| 141 | |||||
| 142 | -d | ||||
| 143 | --data - Data [instead of DATAFILE]. | ||||
| 144 | |||||
| 145 | <DATAFILE> - input data file ("-" for STDIN) unless --data is given | ||||
| 146 | Content depends on the sub command: | ||||
| 147 | + for 'search' it is a search query | ||||
| 148 | + for 'add' it is BenchmarkAnything data | ||||
| 149 | + for 'createdb' no input data is used | ||||
| 150 | }; | ||||
| 151 | } | ||||
| 152 | |||||
| 153 | sub _connect | ||||
| 154 | # spent 429ms (2.31+427) within main::_connect which was called:
# once (2.31ms+427ms) by main::_getopt at line 206 | ||||
| 155 | 1 | 800ns | my ($c) = @_; | ||
| 156 | |||||
| 157 | 1 | 56µs | require BenchmarkAnything::Storage::Frontend::Lib; | ||
| 158 | |||||
| 159 | 1 | 3µs | 1 | 2µs | my $opt = $c->options; # spent 2µs making 1 call to App::Rad::options |
| 160 | $c->{_balib} = BenchmarkAnything::Storage::Frontend::Lib->new | ||||
| 161 | (cfgfile => $opt->{cfgfile}, | ||||
| 162 | really => $opt->{really}, | ||||
| 163 | debug => $opt->{debug}, | ||||
| 164 | verbose => $opt->{verbose}, | ||||
| 165 | skipvalidation => $opt->{skipvalidation}, | ||||
| 166 | queuemode => $opt->{queuemode}, | ||||
| 167 | 1 | 15µs | 3 | 97.0ms | ($c->cmd =~ /^(init|help)$/ ? # spent 97.0ms making 1 call to BenchmarkAnything::Storage::Frontend::Lib::new
# spent 2µs making 1 call to App::Rad::cmd
# spent 2µs making 1 call to main::CORE:match |
| 168 | ( noconnect => 1, | ||||
| 169 | noconfig => 1, | ||||
| 170 | ) : ()), | ||||
| 171 | ); | ||||
| 172 | } | ||||
| 173 | |||||
| 174 | sub _disconnect | ||||
| 175 | # spent 34µs (8+26) within main::_disconnect which was called:
# once (8µs+26µs) by main::teardown at line 32 | ||||
| 176 | 1 | 600ns | my ($c) = @_; | ||
| 177 | |||||
| 178 | 1 | 6µs | 1 | 26µs | $c->{_balib}->disconnect if $c->{_balib}; # balib is undef on getopt errors # spent 26µs making 1 call to BenchmarkAnything::Storage::Frontend::Lib::disconnect |
| 179 | } | ||||
| 180 | |||||
| 181 | sub _getopt | ||||
| 182 | { | ||||
| 183 | 2 | 800ns | my ($c) = @_; | ||
| 184 | |||||
| 185 | 2 | 29µs | 1 | 8.85ms | $c->getopt( "cfgfile|c=s", # spent 8.85ms making 1 call to App::Rad::getopt |
| 186 | "backend|b=s", | ||||
| 187 | "intype|i=s", | ||||
| 188 | "outtype|o=s", | ||||
| 189 | "separator|s=s", | ||||
| 190 | "fb", | ||||
| 191 | "fi", | ||||
| 192 | "pattern|p=s", | ||||
| 193 | "id=s", | ||||
| 194 | "debug", | ||||
| 195 | "data|d=s", | ||||
| 196 | "force|f", | ||||
| 197 | "verbose|v", | ||||
| 198 | "startid=i", | ||||
| 199 | "bulkcount=i", | ||||
| 200 | "skipvalidation", | ||||
| 201 | "queuemode", | ||||
| 202 | "really=s", | ||||
| 203 | ) | ||||
| 204 | or help() and return undef; | ||||
| 205 | |||||
| 206 | 1 | 7µs | 1 | 429ms | _connect($c); # spent 429ms making 1 call to main::_connect |
| 207 | 1 | 4µs | 1 | 20µs | _set_defaults($c); # spent 20µs making 1 call to main::_set_defaults |
| 208 | } | ||||
| 209 | |||||
| 210 | |||||
| 211 | sub _set_defaults | ||||
| 212 | # spent 20µs (15+5) within main::_set_defaults which was called:
# once (15µs+5µs) by main::_getopt at line 207 | ||||
| 213 | 1 | 500ns | my ($c) = @_; | ||
| 214 | |||||
| 215 | 1 | 2µs | 1 | 3µs | $c->{_file} = $c->argv->[0] || '-'; # spent 3µs making 1 call to App::Rad::argv |
| 216 | 1 | 2µs | 1 | 1µs | $c->options->{outtype} ||= 'json'; # spent 1µs making 1 call to App::Rad::options |
| 217 | 1 | 1µs | 1 | 300ns | $c->options->{separator} ||= ';'; # spent 300ns making 1 call to App::Rad::options |
| 218 | 1 | 2µs | 1 | 200ns | $c->options->{fb} ||= 0; # spent 200ns making 1 call to App::Rad::options |
| 219 | 1 | 3µs | 1 | 200ns | $c->options->{fi} ||= 0; # spent 200ns making 1 call to App::Rad::options |
| 220 | |||||
| 221 | } | ||||
| 222 | |||||
| 223 | sub init :Help(Initialize a local BenchmarkAnything setup) | ||||
| 224 | { | ||||
| 225 | my ($c) = @_; | ||||
| 226 | |||||
| 227 | _getopt($c); | ||||
| 228 | _init($c); | ||||
| 229 | 2 | 46µs | 2 | 281µs | # spent 144µs (7+137) within main::BEGIN@229 which was called:
# once (7µs+137µs) by main::NULL at line 229 # spent 144µs making 1 call to main::BEGIN@229
# spent 137µs making 1 call to attributes::import |
| 230 | |||||
| 231 | sub search :Help(search BenchmarkAnything data) | ||||
| 232 | { | ||||
| 233 | my ($c) = @_; | ||||
| 234 | |||||
| 235 | _getopt($c); | ||||
| 236 | _search($c); | ||||
| 237 | 2 | 41µs | 2 | 187µs | # spent 96µs (5+91) within main::BEGIN@237 which was called:
# once (5µs+91µs) by main::NULL at line 237 # spent 96µs making 1 call to main::BEGIN@237
# spent 91µs making 1 call to attributes::import |
| 238 | |||||
| 239 | # spent 21µs (6+14) within main::add which was called:
# once (6µs+14µs) by Attribute::Handlers::_apply_handler_AH_ at line 2 of (eval 4)[Attribute/Handlers.pm:222] | ||||
| 240 | { | ||||
| 241 | 1 | 700ns | my ($c) = @_; | ||
| 242 | |||||
| 243 | 1 | 5µs | 1 | 14µs | _getopt($c); # spent 14µs making 1 call to main::_getopt |
| 244 | _add($c); | ||||
| 245 | 2 | 40µs | 2 | 164µs | # spent 84µs (5+80) within main::BEGIN@245 which was called:
# once (5µs+80µs) by main::NULL at line 245 # spent 84µs making 1 call to main::BEGIN@245
# spent 80µs making 1 call to attributes::import |
| 246 | |||||
| 247 | sub createdb :Help(drop and create tables in the backend store) | ||||
| 248 | { | ||||
| 249 | my ($c) = @_; | ||||
| 250 | |||||
| 251 | _getopt($c); | ||||
| 252 | _createdb($c); | ||||
| 253 | 2 | 41µs | 2 | 166µs | # spent 85µs (4+81) within main::BEGIN@253 which was called:
# once (4µs+81µs) by main::NULL at line 253 # spent 85µs making 1 call to main::BEGIN@253
# spent 81µs making 1 call to attributes::import |
| 254 | |||||
| 255 | sub listnames :Help(list existing metric names) | ||||
| 256 | { | ||||
| 257 | my ($c) = @_; | ||||
| 258 | |||||
| 259 | _getopt($c); | ||||
| 260 | _listnames($c); | ||||
| 261 | 2 | 38µs | 2 | 155µs | # spent 80µs (5+75) within main::BEGIN@261 which was called:
# once (5µs+75µs) by main::NULL at line 261 # spent 80µs making 1 call to main::BEGIN@261
# spent 75µs making 1 call to attributes::import |
| 262 | |||||
| 263 | sub listkeys :Help(list existing additional key names) | ||||
| 264 | { | ||||
| 265 | my ($c) = @_; | ||||
| 266 | |||||
| 267 | _getopt($c); | ||||
| 268 | _listkeys($c); | ||||
| 269 | 2 | 38µs | 2 | 158µs | # spent 82µs (5+76) within main::BEGIN@269 which was called:
# once (5µs+76µs) by main::NULL at line 269 # spent 82µs making 1 call to main::BEGIN@269
# spent 76µs making 1 call to attributes::import |
| 270 | |||||
| 271 | sub stats :Help(show backend storage usage counts) | ||||
| 272 | { | ||||
| 273 | my ($c) = @_; | ||||
| 274 | |||||
| 275 | _getopt($c); | ||||
| 276 | _stats($c); | ||||
| 277 | 2 | 44µs | 2 | 174µs | # spent 89µs (4+85) within main::BEGIN@277 which was called:
# once (4µs+85µs) by main::NULL at line 277 # spent 89µs making 1 call to main::BEGIN@277
# spent 85µs making 1 call to attributes::import |
| 278 | |||||
| 279 | # spent 53.5s (14µs+53.5) within main::processqueue which was called:
# once (14µs+53.5s) by App::Rad::execute at line 405 of App/Rad.pm | ||||
| 280 | { | ||||
| 281 | 1 | 400ns | my ($c) = @_; | ||
| 282 | |||||
| 283 | 1 | 1µs | 1 | 438ms | _getopt($c); # spent 438ms making 1 call to main::_getopt |
| 284 | 1 | 2µs | 1 | 53.0s | _processqueue($c); # spent 53.0s making 1 call to main::_processqueue |
| 285 | 1 | 8µs | 1 | 34.4ms | _gc($c); # spent 34.4ms making 1 call to main::_gc |
| 286 | 2 | 42µs | 2 | 160µs | # spent 82µs (5+77) within main::BEGIN@286 which was called:
# once (5µs+77µs) by main::NULL at line 286 # spent 82µs making 1 call to main::BEGIN@286
# spent 77µs making 1 call to attributes::import |
| 287 | |||||
| 288 | sub initsearch :Help(Initializes the configured search engine (Elasticsearch)) | ||||
| 289 | { | ||||
| 290 | my ($c) = @_; | ||||
| 291 | |||||
| 292 | _getopt($c); | ||||
| 293 | _init_search_engine($c); | ||||
| 294 | _gc($c); | ||||
| 295 | 2 | 41µs | 2 | 157µs | # spent 81µs (5+76) within main::BEGIN@295 which was called:
# once (5µs+76µs) by main::NULL at line 295 # spent 81µs making 1 call to main::BEGIN@295
# spent 76µs making 1 call to attributes::import |
| 296 | |||||
| 297 | sub syncsearch :Help(Syncs the DB with the configured search engine (Elasticsearch)) | ||||
| 298 | { | ||||
| 299 | my ($c) = @_; | ||||
| 300 | |||||
| 301 | _getopt($c); | ||||
| 302 | _sync_search_engine($c); | ||||
| 303 | _gc($c); | ||||
| 304 | 2 | 42µs | 2 | 161µs | # spent 83µs (5+78) within main::BEGIN@304 which was called:
# once (5µs+78µs) by main::NULL at line 304 # spent 83µs making 1 call to main::BEGIN@304
# spent 78µs making 1 call to attributes::import |
| 305 | |||||
| 306 | sub gc :Help(Garbage collects artefacts in the backend store) | ||||
| 307 | { | ||||
| 308 | my ($c) = @_; | ||||
| 309 | |||||
| 310 | _getopt($c); | ||||
| 311 | _gc($c); | ||||
| 312 | 2 | 520µs | 2 | 158µs | # spent 81µs (4+77) within main::BEGIN@312 which was called:
# once (4µs+77µs) by main::NULL at line 312 # spent 81µs making 1 call to main::BEGIN@312
# spent 77µs making 1 call to attributes::import |
| 313 | |||||
| 314 | ###################################################################### | ||||
| 315 | # | ||||
| 316 | # Implementation | ||||
| 317 | # | ||||
| 318 | ###################################################################### | ||||
| 319 | |||||
| 320 | |||||
| 321 | sub _read_in | ||||
| 322 | { | ||||
| 323 | my ($c) = @_; | ||||
| 324 | |||||
| 325 | my $opt = $c->options; | ||||
| 326 | |||||
| 327 | my $file = $c->{_file}; | ||||
| 328 | my $intype = $opt->{intype} || 'json'; | ||||
| 329 | my $data; | ||||
| 330 | my $filecontent; | ||||
| 331 | { | ||||
| 332 | local $/; | ||||
| 333 | if (defined $opt->{data}) { | ||||
| 334 | $filecontent = $opt->{data}; | ||||
| 335 | } | ||||
| 336 | elsif ($file eq '-') { | ||||
| 337 | $filecontent = <STDIN>; | ||||
| 338 | } | ||||
| 339 | else | ||||
| 340 | { | ||||
| 341 | open (my $FH, "<", $file) or die "benchmarkanything-storage: cannot open input file $file.\n"; | ||||
| 342 | $filecontent = <$FH>; | ||||
| 343 | close $FH; | ||||
| 344 | } | ||||
| 345 | } | ||||
| 346 | |||||
| 347 | if (not defined $filecontent or $filecontent !~ /[^\s\t\r\n]/ms) { | ||||
| 348 | die "benchmarkanything-storage: no meaningful input to read.\n"; | ||||
| 349 | } | ||||
| 350 | |||||
| 351 | if ($intype eq "yaml") { | ||||
| 352 | require YAML::Any; | ||||
| 353 | $data = [YAML::Any::Load($filecontent)]; | ||||
| 354 | } | ||||
| 355 | elsif ($intype eq "json") { | ||||
| 356 | require JSON; | ||||
| 357 | $data = JSON::decode_json($filecontent); | ||||
| 358 | } | ||||
| 359 | elsif ($intype eq "dumper") { | ||||
| 360 | eval '$data = my '.$filecontent; | ||||
| 361 | } | ||||
| 362 | else | ||||
| 363 | { | ||||
| 364 | die "benchmarkanything-storage: unrecognized input format: $intype.\n"; | ||||
| 365 | } | ||||
| 366 | return $data; | ||||
| 367 | } | ||||
| 368 | |||||
| 369 | |||||
| 370 | sub _write_out | ||||
| 371 | { | ||||
| 372 | my ($c, $data) = @_; | ||||
| 373 | |||||
| 374 | return $c->{_balib}->_output_format($data, $c->options); | ||||
| 375 | } | ||||
| 376 | |||||
| 377 | sub _listnames | ||||
| 378 | { | ||||
| 379 | my ($c) = @_; | ||||
| 380 | |||||
| 381 | my $result = $c->{_balib}->listnames ($c->options->{pattern}); | ||||
| 382 | _write_out($c, $result); | ||||
| 383 | } | ||||
| 384 | |||||
| 385 | sub _listkeys | ||||
| 386 | { | ||||
| 387 | my ($c) = @_; | ||||
| 388 | |||||
| 389 | my $result = $c->{_balib}->listkeys ($c->options->{pattern}); | ||||
| 390 | _write_out($c, $result); | ||||
| 391 | } | ||||
| 392 | |||||
| 393 | sub _stats | ||||
| 394 | { | ||||
| 395 | my ($c) = @_; | ||||
| 396 | |||||
| 397 | my $result = $c->{_balib}->stats; | ||||
| 398 | _write_out($c, $result); | ||||
| 399 | } | ||||
| 400 | |||||
| 401 | sub _processqueue | ||||
| 402 | # spent 53.0s (11µs+53.0) within main::_processqueue which was called:
# once (11µs+53.0s) by main::processqueue at line 284 | ||||
| 403 | 1 | 300ns | my ($c) = @_; | ||
| 404 | |||||
| 405 | 1 | 1µs | 1 | 200ns | my $bulkcount = $c->options->{bulkcount} || 100; # spent 200ns making 1 call to App::Rad::options |
| 406 | 1 | 3µs | 1 | 53.0s | $c->{_balib}->process_raw_result_queue($bulkcount); # spent 53.0s making 1 call to BenchmarkAnything::Storage::Frontend::Lib::process_raw_result_queue |
| 407 | 1 | 5µs | return; | ||
| 408 | } | ||||
| 409 | |||||
| 410 | sub _init_search_engine | ||||
| 411 | { | ||||
| 412 | my ($c) = @_; | ||||
| 413 | |||||
| 414 | $c->{_balib}->init_search_engine($c->options->{force}); | ||||
| 415 | return; | ||||
| 416 | } | ||||
| 417 | |||||
| 418 | sub _sync_search_engine | ||||
| 419 | { | ||||
| 420 | my ($c) = @_; | ||||
| 421 | |||||
| 422 | my $force = $c->options->{force} || 0; | ||||
| 423 | my $startid = $c->options->{startid} || 1; | ||||
| 424 | my $bulkcount = $c->options->{bulkcount} || 10_000; | ||||
| 425 | $c->{_balib}->sync_search_engine($force, $startid, $bulkcount); | ||||
| 426 | return; | ||||
| 427 | } | ||||
| 428 | |||||
| 429 | sub _gc | ||||
| 430 | # spent 34.4ms (86µs+34.3) within main::_gc which was called:
# once (86µs+34.3ms) by main::processqueue at line 285 | ||||
| 431 | 1 | 600ns | my ($c) = @_; | ||
| 432 | |||||
| 433 | 1 | 80µs | 1 | 34.3ms | $c->{_balib}->gc; # spent 34.3ms making 1 call to BenchmarkAnything::Storage::Frontend::Lib::gc |
| 434 | 1 | 5µs | 1 | 2µs | return; # spent 2µs making 1 call to Cpanel::JSON::XS::DESTROY |
| 435 | } | ||||
| 436 | |||||
| 437 | sub _search | ||||
| 438 | { | ||||
| 439 | my ($c) = @_; | ||||
| 440 | |||||
| 441 | my $result; | ||||
| 442 | my $value_id = $c->options->{id}; | ||||
| 443 | |||||
| 444 | # special case: search --id gets a full point with all details | ||||
| 445 | if ($value_id) { | ||||
| 446 | $result = $c->{_balib}->search(undef, $value_id); | ||||
| 447 | } | ||||
| 448 | else | ||||
| 449 | { | ||||
| 450 | my $query = _read_in($c); | ||||
| 451 | $result = $c->{_balib}->search($query); | ||||
| 452 | } | ||||
| 453 | _write_out($c, $result); | ||||
| 454 | } | ||||
| 455 | |||||
| 456 | sub _add | ||||
| 457 | { | ||||
| 458 | my ($c) = @_; | ||||
| 459 | |||||
| 460 | my $data = _read_in($c); | ||||
| 461 | $c->{_balib}->add ($data); | ||||
| 462 | return; | ||||
| 463 | } | ||||
| 464 | |||||
| 465 | sub _createdb | ||||
| 466 | { | ||||
| 467 | my ($c) = @_; | ||||
| 468 | |||||
| 469 | $c->{_balib}->createdb; | ||||
| 470 | return; | ||||
| 471 | } | ||||
| 472 | |||||
| 473 | sub _init | ||||
| 474 | { | ||||
| 475 | my ($c) = @_; | ||||
| 476 | |||||
| 477 | my $old_verbose = $c->{_balib}{verbose}; | ||||
| 478 | $c->{_balib}{verbose} = 1; | ||||
| 479 | |||||
| 480 | $c->{_balib}->init_workdir; | ||||
| 481 | |||||
| 482 | $c->{_balib}{verbose} = $old_verbose; | ||||
| 483 | |||||
| 484 | return; | ||||
| 485 | } | ||||
| 486 | |||||
| 487 | __END__ | ||||
# spent 22µs within DBD::_mem::common::DESTROY which was called 16 times, avg 1µs/call:
# 16 times (22µs+0s) by App::Rad::run at line 17, avg 1µs/call | |||||
# spent 97µs within DBI::common::DESTROY which was called 32 times, avg 3µs/call:
# 32 times (97µs+0s) by App::Rad::run at line 17, avg 3µs/call | |||||
# spent 289ms (134+155) within DBI::common::EXISTS which was called 31629 times, avg 9µs/call:
# 27629 times (121ms+120ms) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 38 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 9µs/call
# 2000 times (8.07ms+20.9ms) by BenchmarkAnything::Storage::Backend::SQL::Query::start_transaction at line 68 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 14µs/call
# 2000 times (4.56ms+14.6ms) by BenchmarkAnything::Storage::Backend::SQL::Query::finish_transaction at line 94 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 10µs/call | |||||
# spent 108ms within DBI::common::FETCH which was called 89213 times, avg 1µs/call:
# 31629 times (38.9ms+0s) by DBD::_::common::EXISTS at line 1375 of DBI.pm, avg 1µs/call
# 27629 times (13.3ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 38 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 483ns/call
# 18950 times (43.2ms+0s) by DBD::_::st::fetchrow_hashref at line 869 of DBD/mysql.pm, avg 2µs/call
# 2000 times (4.32ms+0s) by BenchmarkAnything::Storage::Backend::SQL::process_queued_multi_benchmark at line 410 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 2µs/call
# 2000 times (3.94ms+0s) by DBD::_::st::fetchall_arrayref at line 2083 of DBI.pm, avg 2µs/call
# 2000 times (1.26ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::start_transaction at line 71 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 632ns/call
# 2000 times (1.23ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::start_transaction at line 68 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 613ns/call
# 2000 times (1.02ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::finish_transaction at line 94 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 512ns/call
# 1000 times (730µs+0s) by DBD::_::st::bind_columns at line 1908 of DBI.pm, avg 730ns/call
# 2 times (10µs+0s) by BenchmarkAnything::Storage::Backend::SQL::new at line 141 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 5µs/call
# 2 times (5µs+0s) by BenchmarkAnything::Storage::Backend::SQL::new at line 162 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 2µs/call
# once (7µs+0s) by BenchmarkAnything::Storage::Frontend::Lib::disconnect at line 231 of BenchmarkAnything/Storage/Frontend/Lib.pm | |||||
# spent 409ms within DBI::common::STORE which was called 67264 times, avg 6µs/call:
# 27629 times (25.1ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 38 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 909ns/call
# 4650 times (8.64ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 425 of BenchmarkAnything/Storage/Backend/SQL/Query/mysql.pm, avg 2µs/call
# 4650 times (8.37ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 491 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 2µs/call
# 4650 times (8.28ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 515 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 2µs/call
# 4650 times (8.08ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 503 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 2µs/call
# 2000 times (214ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::finish_transaction at line 105 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 107µs/call
# 2000 times (100ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::start_transaction at line 72 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 50µs/call
# 2000 times (6.57ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::finish_transaction at line 92 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 3µs/call
# 2000 times (2.34ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::start_transaction at line 68 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 1µs/call
# 2000 times (1.51ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::finish_transaction at line 94 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 756ns/call
# 1000 times (3.69ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 616 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 4µs/call
# 1000 times (2.63ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 176 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 3µs/call
# 1000 times (2.42ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 689 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 2µs/call
# 1000 times (2.20ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 704 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 2µs/call
# 1000 times (2.18ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 382 of BenchmarkAnything/Storage/Backend/SQL/Query/mysql.pm, avg 2µs/call
# 1000 times (2.12ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::start_transaction at line 431 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 2µs/call
# 1000 times (2.08ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 604 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 2µs/call
# 1000 times (2.08ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::start_transaction at line 415 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 2µs/call
# 1000 times (2.05ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 117 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 2µs/call
# 1000 times (1.98ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 405 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 2µs/call
# 1000 times (1.81ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 268 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm, avg 2µs/call
# 28 times (63µs+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 410 of BenchmarkAnything/Storage/Backend/SQL/Query/mysql.pm, avg 2µs/call
# 3 times (6µs+0s) by DBI::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/x86_64-linux/DBI.pm:750] at line 735 of DBI.pm, avg 2µs/call
# 2 times (4µs+0s) by DBI::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/x86_64-linux/DBI.pm:750] at line 738 of DBI.pm, avg 2µs/call
# once (9µs+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 652 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm
# once (1µs+0s) by DBI::connect at line 754 of DBI.pm | |||||
# spent 3.15ms within DBI::common::func which was called 3015 times, avg 1µs/call:
# 3000 times (3.13ms+0s) by DBD::mysql::st::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/x86_64-linux/DBD/mysql.pm:881] at line 879 of DBD/mysql.pm, avg 1µs/call
# 15 times (20µs+0s) by DBD::mysql::db::prepare at line 240 of DBD/mysql.pm, avg 1µs/call | |||||
# spent 22.4s within DBI::db::commit which was called 2000 times, avg 11.2ms/call:
# 2000 times (22.4s+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::finish_transaction at line 102 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 11.2ms/call | |||||
# spent 2µs within DBI::db::connected which was called:
# once (2µs+0s) by DBI::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/x86_64-linux/DBI.pm:750] at line 745 of DBI.pm | |||||
# spent 121ms within DBI::db::do which was called 2000 times, avg 60µs/call:
# 1000 times (60.5ms+0s) by BenchmarkAnything::Storage::Backend::SQL::process_queued_multi_benchmark at line 414 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 61µs/call
# 1000 times (60.2ms+0s) by BenchmarkAnything::Storage::Backend::SQL::process_queued_multi_benchmark at line 428 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 60µs/call | |||||
# spent 2.02ms within DBI::db::last_insert_id which was called 1028 times, avg 2µs/call:
# 1028 times (2.02ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::last_insert_id at line 59 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 2µs/call | |||||
# spent 509µs (53+456) within DBI::db::prepare which was called 15 times, avg 34µs/call:
# 15 times (53µs+456µs) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 45 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 34µs/call | |||||
# spent 1.13ms (6µs+1.12) within DBI::dr::connect which was called:
# once (6µs+1.12ms) by DBI::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/x86_64-linux/DBI.pm:750] at line 683 of DBI.pm | |||||
# spent 10µs within DBI::dr::disconnect_all which was called:
# once (10µs+0s) by DBI::disconnect_all at line 762 of DBI.pm | |||||
# spent 22.4ms (10.9+11.5) within DBI::st::bind_col which was called 2000 times, avg 11µs/call:
# 2000 times (10.9ms+11.5ms) by DBD::_::st::bind_columns at line 1919 of DBI.pm, avg 11µs/call | |||||
# spent 60.9ms (9.30+51.6) within DBI::st::bind_columns which was called 1000 times, avg 61µs/call:
# 1000 times (9.30ms+51.6ms) by DBD::_::st::fetchall_arrayref at line 2083 of DBI.pm, avg 61µs/call | |||||
# spent 4.33s within DBI::st::execute which was called 27629 times, avg 157µs/call:
# 27629 times (4.33s+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 48 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 157µs/call | |||||
# spent 39.8ms within DBI::st::fetch which was called 24600 times, avg 2µs/call:
# 18950 times (33.4ms+0s) by DBD::_::st::fetchrow_hashref at line 869 of DBD/mysql.pm, avg 2µs/call
# 5650 times (6.37ms+0s) by DBD::_::st::fetchall_arrayref at line 2090 of DBI.pm, avg 1µs/call | |||||
# spent 121ms (8.22+113) within DBI::st::fetchall_arrayref which was called 1000 times, avg 121µs/call:
# 1000 times (8.22ms+113ms) by BenchmarkAnything::Storage::Backend::SQL::get_single_benchmark_point at line 642 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 121µs/call | |||||
# spent 502ms (104+397) within DBI::st::fetchrow_hashref which was called 18950 times, avg 26µs/call:
# 4650 times (22.0ms+96.5ms) by BenchmarkAnything::Storage::Backend::SQL::add_single_benchmark at line 304 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 25µs/call
# 4650 times (15.1ms+95.4ms) by BenchmarkAnything::Storage::Backend::SQL::add_single_benchmark at line 274 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 24µs/call
# 4650 times (15.3ms+80.4ms) by BenchmarkAnything::Storage::Backend::SQL::add_single_benchmark at line 325 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 21µs/call
# 1000 times (33.9ms+23.9ms) by BenchmarkAnything::Storage::Backend::SQL::add_single_benchmark at line 186 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 58µs/call
# 1000 times (9.24ms+28.3ms) by BenchmarkAnything::Storage::Backend::SQL::process_queued_multi_benchmark at line 436 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 38µs/call
# 1000 times (3.49ms+29.6ms) by BenchmarkAnything::Storage::Backend::SQL::process_queued_multi_benchmark at line 418 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 33µs/call
# 1000 times (3.01ms+21.8ms) by BenchmarkAnything::Storage::Backend::SQL::get_single_benchmark_point at line 647 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 25µs/call
# 1000 times (2.28ms+21.4ms) by BenchmarkAnything::Storage::Backend::SQL::add_single_benchmark at line 238 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 24µs/call | |||||
# spent 45.3ms within DBI::st::finish which was called 27614 times, avg 2µs/call:
# 27614 times (45.3ms+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::execute_query at line 41 of BenchmarkAnything/Storage/Backend/SQL/Query.pm, avg 2µs/call | |||||
# spent 19.4ms within DBI::st::mysql_async_ready which was called 18950 times, avg 1µs/call:
# 18950 times (19.4ms+0s) by DBD::mysql::st::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/x86_64-linux/DBD/mysql.pm:870] at line 866 of DBD/mysql.pm, avg 1µs/call | |||||
# spent 57µs within Internals::SvREADONLY which was called 179 times, avg 321ns/call:
# 177 times (57µs+0s) by constant::import at line 164 of constant.pm, avg 321ns/call
# once (500ns+0s) by constant::BEGIN@24 at line 33 of constant.pm
# once (200ns+0s) by constant::BEGIN@24 at line 34 of constant.pm | |||||
sub main::CORE:match; # opcode | |||||
# spent 11µs within main::CORE:pack which was called 7 times, avg 2µs/call:
# once (2µs+0s) by Search::Elasticsearch::Cxn::HTTPTiny::BEGIN@6 at line 610 of IO/Socket/IP.pm
# once (2µs+0s) by IO::Compress::Gzip::BEGIN@15 at line 145 of IO/Compress/Gzip/Constants.pm
# once (2µs+0s) by HTTP::Tiny::Handle::BEGIN@866 at line 319 of IO/Socket.pm
# once (2µs+0s) by YAML::XS::BEGIN@57 at line 4723 of B/Deparse.pm
# once (800ns+0s) by YAML::XS::BEGIN@57 at line 4774 of B/Deparse.pm
# once (600ns+0s) by YAML::XS::BEGIN@57 at line 4791 of B/Deparse.pm
# once (300ns+0s) by YAML::XS::BEGIN@57 at line 4794 of B/Deparse.pm | |||||
# spent 4µs within version::(bool which was called:
# once (4µs+0s) by DynaLoader::BEGIN@22 at line 59 of Config.pm | |||||
# spent 2µs within version::(cmp which was called:
# once (2µs+0s) by DynaLoader::BEGIN@22 at line 62 of Config.pm |