| Filename | /usr/libdata/perl5/OpenBSD/PackageRepository/Installed.pm |
| Statements | Executed 747 statements in 33.0ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 126 | 6 | 2 | 2.95ms | 12.0ms | OpenBSD::PackageRepositoryBase::url |
| 80 | 2 | 1 | 1.25ms | 1.08s | OpenBSD::PackageRepositoryBase::close_now |
| 40 | 1 | 1 | 405µs | 1.01ms | OpenBSD::PackageRepositoryBase::new_location |
| 40 | 1 | 1 | 229µs | 258µs | OpenBSD::PackageRepositoryBase::canonicalize |
| 2 | 2 | 1 | 143µs | 5.43ms | OpenBSD::PackageRepositoryBase::parse_url |
| 40 | 1 | 1 | 66µs | 66µs | OpenBSD::PackageRepositoryBase::locationClassName |
| 2 | 2 | 1 | 50µs | 61µs | OpenBSD::PackageRepositoryBase::strip_urlscheme |
| 2 | 1 | 1 | 50µs | 2.06s | OpenBSD::PackageRepositoryBase::match_locations |
| 43 | 3 | 1 | 41µs | 41µs | OpenBSD::PackageRepositoryBase::CORE:subst (opcode) |
| 1 | 1 | 1 | 33µs | 3.06ms | OpenBSD::PackageRepositoryBase::expand_locations |
| 1 | 1 | 1 | 30µs | 35µs | OpenBSD::PackageLocator::BEGIN@18.13 |
| 8 | 4 | 1 | 29µs | 29µs | OpenBSD::PackageRepositoryBase::CORE:match (opcode) |
| 1 | 1 | 1 | 20µs | 199µs | OpenBSD::PackageRepository::Installed::BEGIN@197 |
| 1 | 1 | 1 | 17µs | 30µs | OpenBSD::PackageLocator::BEGIN@19.14 |
| 2 | 1 | 1 | 12µs | 12µs | OpenBSD::PackageRepositoryBase::CORE:substcont (opcode) |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::available |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::canonicalize |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::close |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::find |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::grabPlist |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::list |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::locationClassName |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::make_error_file |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::may_exist |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::new |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::relative_url |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::stemlist |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::urlscheme |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepository::Installed::wipe_info |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepositoryBase::close_after_error |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepositoryBase::close_with_client_error |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepositoryBase::finish_and_close |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepositoryBase::is_local_file |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepositoryBase::locations_list |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepositoryBase::parse_fullurl |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageRepositoryBase::reinitialize |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | # ex:ts=8 sw=4: | ||||
| 2 | # $OpenBSD: Installed.pm,v 1.38 2017/03/11 11:25:01 espie Exp $ | ||||
| 3 | # | ||||
| 4 | # Copyright (c) 2007-2014 Marc Espie <espie@openbsd.org> | ||||
| 5 | # | ||||
| 6 | # Permission to use, copy, modify, and distribute this software for any | ||||
| 7 | # purpose with or without fee is hereby granted, provided that the above | ||||
| 8 | # copyright notice and this permission notice appear in all copies. | ||||
| 9 | # | ||||
| 10 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||
| 11 | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||
| 12 | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||
| 13 | # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||
| 14 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||
| 15 | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||||
| 16 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||
| 17 | |||||
| 18 | 2 | 319µs | 2 | 39µs | # spent 35µs (30+5) within OpenBSD::PackageLocator::BEGIN@18.13 which was called:
# once (30µs+5µs) by OpenBSD::PackageLocator::BEGIN@24.12 at line 18 # spent 35µs making 1 call to OpenBSD::PackageLocator::BEGIN@18.13
# spent 5µs making 1 call to strict::import |
| 19 | 2 | 20.2ms | 2 | 42µs | # spent 30µs (17+13) within OpenBSD::PackageLocator::BEGIN@19.14 which was called:
# once (17µs+13µs) by OpenBSD::PackageLocator::BEGIN@24.12 at line 19 # spent 30µs making 1 call to OpenBSD::PackageLocator::BEGIN@19.14
# spent 13µs making 1 call to warnings::import |
| 20 | |||||
| 21 | # XXX: we want to be able to load PackageRepository::Installed stand-alone, | ||||
| 22 | # so we put the only common method into PackageRepositoryBase. | ||||
| 23 | # | ||||
| 24 | # later, when we load the base PackageRepository, we tweak the inheritance | ||||
| 25 | # of PackageRepository::Installed to have full access... | ||||
| 26 | |||||
| 27 | package OpenBSD::PackageRepositoryBase; | ||||
| 28 | |||||
| 29 | 1 | 800ns | my ($version, $current); | ||
| 30 | |||||
| 31 | sub is_local_file | ||||
| 32 | { | ||||
| 33 | return 0; | ||||
| 34 | } | ||||
| 35 | |||||
| 36 | sub expand_locations | ||||
| 37 | # spent 3.06ms (33µs+3.03) within OpenBSD::PackageRepositoryBase::expand_locations which was called:
# once (33µs+3.03ms) by OpenBSD::PackageRepositoryBase::parse_url at line 67 | ||||
| 38 | 1 | 2µs | my ($class, $string, $state) = @_; | ||
| 39 | 1 | 1µs | require OpenBSD::Paths; | ||
| 40 | 1 | 29µs | 1 | 3.03ms | if ($string eq '%a') { # spent 3.03ms making 1 call to OpenBSD::Paths::machine_architecture |
| 41 | return OpenBSD::Paths->machine_architecture; | ||||
| 42 | } elsif ($string eq '%v') { | ||||
| 43 | return OpenBSD::Paths->os_version; | ||||
| 44 | } elsif ($string eq '%m') { | ||||
| 45 | return join('/', | ||||
| 46 | 'pub/OpenBSD', | ||||
| 47 | '%c', | ||||
| 48 | 'packages', | ||||
| 49 | OpenBSD::Paths->machine_architecture); | ||||
| 50 | } | ||||
| 51 | } | ||||
| 52 | |||||
| 53 | sub parse_url | ||||
| 54 | # spent 5.43ms (143µs+5.29) within OpenBSD::PackageRepositoryBase::parse_url which was called 2 times, avg 2.71ms/call:
# once (116µs+5.28ms) by OpenBSD::PackageRepository::Distant::parse_url at line 586 of OpenBSD/PackageRepository.pm
# once (27µs+6µs) by OpenBSD::PackageRepository::Local::parse_fullurl at line 482 of OpenBSD/PackageRepository.pm | ||||
| 55 | 2 | 2µs | my ($class, $r, $state) = @_; | ||
| 56 | |||||
| 57 | 2 | 1µs | my $path; | ||
| 58 | |||||
| 59 | 2 | 11µs | 2 | 3µs | if ($$r =~ m/^(.*?)\:(.*)/) { # spent 3µs making 2 calls to OpenBSD::PackageRepositoryBase::CORE:match, avg 1µs/call |
| 60 | 1 | 1µs | $path = $1; | ||
| 61 | 1 | 2µs | $$r = $2; | ||
| 62 | } else { | ||||
| 63 | 1 | 900ns | $path = $$r; | ||
| 64 | 1 | 900ns | $$r = ''; | ||
| 65 | } | ||||
| 66 | |||||
| 67 | 3 | 36µs | 5 | 3.08ms | $path =~ s/\%[vam]\b/$class->expand_locations($&, $state)/ge; # spent 3.06ms making 1 call to OpenBSD::PackageRepositoryBase::expand_locations
# spent 12µs making 2 calls to OpenBSD::PackageRepositoryBase::CORE:substcont, avg 6µs/call
# spent 3µs making 2 calls to OpenBSD::PackageRepositoryBase::CORE:subst, avg 2µs/call |
| 68 | # make %c magical: if we're on a release, we expand into | ||||
| 69 | # stable, and leave the release dir for the full object with | ||||
| 70 | # host to push back | ||||
| 71 | 2 | 1µs | my $release; | ||
| 72 | 2 | 23µs | 2 | 13µs | if ($path =~ m/\%c\b/) { # spent 13µs making 2 calls to OpenBSD::PackageRepositoryBase::CORE:match, avg 7µs/call |
| 73 | 1 | 34µs | 2 | 2.18ms | my $d = $state->defines('snap') ? # spent 2.14ms making 1 call to OpenBSD::Paths::os_directory
# spent 33µs making 1 call to OpenBSD::State::defines |
| 74 | 'snapshots' : OpenBSD::Paths->os_directory; | ||||
| 75 | 1 | 2µs | if ($d ne 'snapshots' && $path =~ m,\%c/packages/,) { | ||
| 76 | $release = $path; | ||||
| 77 | $release =~ s,\%c\b,$d,; | ||||
| 78 | $path =~ s,\%c/packages/,$d/packages-stable/,; | ||||
| 79 | } else { | ||||
| 80 | 1 | 13µs | 1 | 9µs | $path =~ s,\%c\b,$d,; # spent 9µs making 1 call to OpenBSD::PackageRepositoryBase::CORE:subst |
| 81 | } | ||||
| 82 | } | ||||
| 83 | 2 | 13µs | 2 | 7µs | $path .= '/' unless $path =~ m/\/$/; # spent 7µs making 2 calls to OpenBSD::PackageRepositoryBase::CORE:match, avg 4µs/call |
| 84 | 2 | 41µs | bless { path => $path, release => $release, state => $state }, $class; | ||
| 85 | } | ||||
| 86 | |||||
| 87 | sub parse_fullurl | ||||
| 88 | { | ||||
| 89 | my ($class, $r, $state) = @_; | ||||
| 90 | |||||
| 91 | $class->strip_urlscheme($r) or return undef; | ||||
| 92 | return $class->parse_url($r, $state); | ||||
| 93 | } | ||||
| 94 | |||||
| 95 | sub strip_urlscheme | ||||
| 96 | # spent 61µs (50+10) within OpenBSD::PackageRepositoryBase::strip_urlscheme which was called 2 times, avg 30µs/call:
# once (34µs+6µs) by OpenBSD::PackageRepository::Local::parse_fullurl at line 481 of OpenBSD/PackageRepository.pm
# once (17µs+4µs) by OpenBSD::PackageRepository::parse_fullurl at line 97 of OpenBSD/PackageRepository.pm | ||||
| 97 | 2 | 2µs | my ($class, $r) = @_; | ||
| 98 | 2 | 16µs | 2 | 6µs | if ($$r =~ m/^(.*?)\:(.*)$/) { # spent 6µs making 2 calls to OpenBSD::PackageRepositoryBase::CORE:match, avg 3µs/call |
| 99 | 2 | 17µs | my $scheme = lc($1); | ||
| 100 | 2 | 7µs | 2 | 4µs | if ($scheme eq $class->urlscheme) { # spent 2µs making 1 call to OpenBSD::PackageRepository::Local::urlscheme
# spent 2µs making 1 call to OpenBSD::PackageRepository::HTTP::urlscheme |
| 101 | 1 | 1µs | $$r = $2; | ||
| 102 | 1 | 4µs | return 1; | ||
| 103 | } | ||||
| 104 | } | ||||
| 105 | 1 | 5µs | return 0; | ||
| 106 | } | ||||
| 107 | |||||
| 108 | sub match_locations | ||||
| 109 | # spent 2.06s (50µs+2.06) within OpenBSD::PackageRepositoryBase::match_locations which was called 2 times, avg 1.03s/call:
# 2 times (50µs+2.06s) by OpenBSD::PackageRepositoryList::match_locations at line 84 of OpenBSD/PackageRepositoryList.pm, avg 1.03s/call | ||||
| 110 | 2 | 2µs | my ($self, $search, @filters) = @_; | ||
| 111 | 2 | 29µs | 2 | 2.06s | my $l = $search->match_locations($self); # spent 2.06s making 2 calls to OpenBSD::Search::match_locations, avg 1.03s/call |
| 112 | 2 | 5µs | while (my $filter = (shift @filters)) { | ||
| 113 | last if @$l == 0; # don't bother filtering empty list | ||||
| 114 | $l = $filter->filter_locations($l); | ||||
| 115 | } | ||||
| 116 | 2 | 13µs | return $l; | ||
| 117 | } | ||||
| 118 | |||||
| 119 | sub url | ||||
| 120 | # spent 12.0ms (2.95+9.06) within OpenBSD::PackageRepositoryBase::url which was called 126 times, avg 95µs/call:
# 41 times (748µs+911µs) by OpenBSD::PackageRepository::parse_problems at line 286 of OpenBSD/PackageRepository.pm, avg 40µs/call
# 40 times (452µs+5.54ms) by OpenBSD::PackageLocation::url at line 41 of OpenBSD/PackageLocation.pm, avg 150µs/call
# 40 times (1.68ms+2.54ms) by OpenBSD::PackageLocation::_opened at line 88 of OpenBSD/PackageLocation.pm, avg 106µs/call
# 2 times (38µs+33µs) by OpenBSD::PackageRepository::unique at line 75 of OpenBSD/PackageRepository.pm, avg 36µs/call
# 2 times (15µs+20µs) by OpenBSD::PackageRepository::unique at line 78 of OpenBSD/PackageRepository.pm, avg 17µs/call
# once (10µs+13µs) by OpenBSD::PackageRepository::HTTPorFTP::get_http_list at line 909 of OpenBSD/PackageRepository.pm | ||||
| 121 | 126 | 229µs | my ($self, $name) = @_; | ||
| 122 | 126 | 2.37ms | 252 | 9.06ms | return $self->urlscheme.':'.$self->relative_url($name); # spent 8.12ms making 126 calls to OpenBSD::PackageRepository::relative_url, avg 64µs/call
# spent 937µs making 124 calls to OpenBSD::PackageRepository::HTTP::urlscheme, avg 8µs/call
# spent 3µs making 2 calls to OpenBSD::PackageRepository::Local::urlscheme, avg 2µs/call |
| 123 | } | ||||
| 124 | |||||
| 125 | sub finish_and_close | ||||
| 126 | { | ||||
| 127 | my ($self, $object) = @_; | ||||
| 128 | $self->close($object); | ||||
| 129 | } | ||||
| 130 | |||||
| 131 | sub close_now | ||||
| 132 | # spent 1.08s (1.25ms+1.08) within OpenBSD::PackageRepositoryBase::close_now which was called 80 times, avg 13.5ms/call:
# 40 times (926µs+1.08s) by OpenBSD::PackageLocation::close_now at line 264 of OpenBSD/PackageLocation.pm, avg 27.0ms/call
# 40 times (325µs+720µs) by OpenBSD::PackageLocation::wipe_info at line 210 of OpenBSD/PackageLocation.pm, avg 26µs/call | ||||
| 133 | 80 | 96µs | my ($self, $object) = @_; | ||
| 134 | 80 | 682µs | 80 | 1.08s | $self->close($object, 0); # spent 1.08s making 80 calls to OpenBSD::PackageRepository::close, avg 13.5ms/call |
| 135 | } | ||||
| 136 | |||||
| 137 | sub close_after_error | ||||
| 138 | { | ||||
| 139 | my ($self, $object) = @_; | ||||
| 140 | $self->close($object, 1); | ||||
| 141 | } | ||||
| 142 | |||||
| 143 | sub close_with_client_error | ||||
| 144 | { | ||||
| 145 | my ($self, $object) = @_; | ||||
| 146 | $self->close($object, 1); | ||||
| 147 | } | ||||
| 148 | |||||
| 149 | sub canonicalize | ||||
| 150 | # spent 258µs (229+28) within OpenBSD::PackageRepositoryBase::canonicalize which was called 40 times, avg 6µs/call:
# 40 times (229µs+28µs) by OpenBSD::PackageLocation::new at line 31 of OpenBSD/PackageLocation.pm, avg 6µs/call | ||||
| 151 | 40 | 26µs | my ($self, $name) = @_; | ||
| 152 | |||||
| 153 | 40 | 48µs | if (defined $name) { | ||
| 154 | 40 | 119µs | 40 | 28µs | $name =~ s/\.tgz$//o; # spent 28µs making 40 calls to OpenBSD::PackageRepositoryBase::CORE:subst, avg 713ns/call |
| 155 | } | ||||
| 156 | 40 | 98µs | return $name; | ||
| 157 | } | ||||
| 158 | |||||
| 159 | sub new_location | ||||
| 160 | # spent 1.01ms (405µs+605µs) within OpenBSD::PackageRepositoryBase::new_location which was called 40 times, avg 25µs/call:
# 40 times (405µs+605µs) by OpenBSD::Search::match_locations at line 27 of OpenBSD/Search.pm, avg 25µs/call | ||||
| 161 | 40 | 33µs | my ($self, @args) = @_; | ||
| 162 | |||||
| 163 | 40 | 244µs | 80 | 605µs | return $self->locationClassName->new($self, @args); # spent 539µs making 40 calls to OpenBSD::PackageLocation::new, avg 13µs/call
# spent 66µs making 40 calls to OpenBSD::PackageRepositoryBase::locationClassName, avg 2µs/call |
| 164 | } | ||||
| 165 | |||||
| 166 | sub locationClassName | ||||
| 167 | 40 | 190µs | # spent 66µs within OpenBSD::PackageRepositoryBase::locationClassName which was called 40 times, avg 2µs/call:
# 40 times (66µs+0s) by OpenBSD::PackageRepositoryBase::new_location at line 163, avg 2µs/call | ||
| 168 | |||||
| 169 | sub locations_list | ||||
| 170 | { | ||||
| 171 | my $self = shift; | ||||
| 172 | if (!defined $self->{locations}) { | ||||
| 173 | my $l = []; | ||||
| 174 | require OpenBSD::PackageLocation; | ||||
| 175 | |||||
| 176 | for my $name (@{$self->list}) { | ||||
| 177 | push @$l, $self->new_location($name); | ||||
| 178 | } | ||||
| 179 | $self->{locations} = $l; | ||||
| 180 | } | ||||
| 181 | return $self->{locations}; | ||||
| 182 | } | ||||
| 183 | |||||
| 184 | sub reinitialize | ||||
| 185 | { | ||||
| 186 | } | ||||
| 187 | |||||
| 188 | package OpenBSD::PackageRepository::Installed; | ||||
| 189 | |||||
| 190 | 1 | 14µs | our @ISA = (qw(OpenBSD::PackageRepositoryBase)); | ||
| 191 | |||||
| 192 | sub urlscheme | ||||
| 193 | { | ||||
| 194 | return 'inst'; | ||||
| 195 | } | ||||
| 196 | |||||
| 197 | 1 | 2µs | # spent 199µs (20+178) within OpenBSD::PackageRepository::Installed::BEGIN@197 which was called:
# once (20µs+178µs) by OpenBSD::PackageLocator::BEGIN@24.12 at line 198 | ||
| 198 | 1 | 8.00ms | 2 | 378µs | installed_packages installed_stems installed_name)); # spent 199µs making 1 call to OpenBSD::PackageRepository::Installed::BEGIN@197
# spent 178µs making 1 call to Exporter::import |
| 199 | |||||
| 200 | sub new | ||||
| 201 | { | ||||
| 202 | my ($class, $all, $state) = @_; | ||||
| 203 | return bless { all => $all, state => $state }, $class; | ||||
| 204 | } | ||||
| 205 | |||||
| 206 | sub relative_url | ||||
| 207 | { | ||||
| 208 | my ($self, $name) = @_; | ||||
| 209 | $name or ''; | ||||
| 210 | } | ||||
| 211 | |||||
| 212 | sub close | ||||
| 213 | { | ||||
| 214 | } | ||||
| 215 | |||||
| 216 | sub make_error_file | ||||
| 217 | { | ||||
| 218 | } | ||||
| 219 | |||||
| 220 | sub canonicalize | ||||
| 221 | { | ||||
| 222 | my ($self, $name) = @_; | ||||
| 223 | return installed_name($name); | ||||
| 224 | } | ||||
| 225 | |||||
| 226 | sub find | ||||
| 227 | { | ||||
| 228 | my ($repository, $name, $arch) = @_; | ||||
| 229 | my $self; | ||||
| 230 | |||||
| 231 | if (is_installed($name)) { | ||||
| 232 | require OpenBSD::PackageLocation; | ||||
| 233 | |||||
| 234 | $self = $repository->new_location($name); | ||||
| 235 | $self->{dir} = installed_info($name); | ||||
| 236 | } | ||||
| 237 | return $self; | ||||
| 238 | } | ||||
| 239 | |||||
| 240 | sub locationClassName | ||||
| 241 | { "OpenBSD::PackageLocation::Installed" } | ||||
| 242 | |||||
| 243 | sub grabPlist | ||||
| 244 | { | ||||
| 245 | my ($repository, $name, $arch, $code) = @_; | ||||
| 246 | require OpenBSD::PackingList; | ||||
| 247 | return OpenBSD::PackingList->from_installation($name, $code); | ||||
| 248 | } | ||||
| 249 | |||||
| 250 | sub available | ||||
| 251 | { | ||||
| 252 | my $self = shift; | ||||
| 253 | return installed_packages($self->{all}); | ||||
| 254 | } | ||||
| 255 | |||||
| 256 | sub list | ||||
| 257 | { | ||||
| 258 | my $self = shift; | ||||
| 259 | my @list = installed_packages($self->{all}); | ||||
| 260 | return \@list; | ||||
| 261 | } | ||||
| 262 | |||||
| 263 | sub stemlist | ||||
| 264 | { | ||||
| 265 | return installed_stems(); | ||||
| 266 | } | ||||
| 267 | |||||
| 268 | sub wipe_info | ||||
| 269 | { | ||||
| 270 | } | ||||
| 271 | |||||
| 272 | sub may_exist | ||||
| 273 | { | ||||
| 274 | my ($self, $name) = @_; | ||||
| 275 | return is_installed($name); | ||||
| 276 | } | ||||
| 277 | |||||
| 278 | 1 | 8µs | 1; | ||
# spent 29µs within OpenBSD::PackageRepositoryBase::CORE:match which was called 8 times, avg 4µs/call:
# 2 times (13µs+0s) by OpenBSD::PackageRepositoryBase::parse_url at line 72, avg 7µs/call
# 2 times (7µs+0s) by OpenBSD::PackageRepositoryBase::parse_url at line 83, avg 4µs/call
# 2 times (6µs+0s) by OpenBSD::PackageRepositoryBase::strip_urlscheme at line 98, avg 3µs/call
# 2 times (3µs+0s) by OpenBSD::PackageRepositoryBase::parse_url at line 59, avg 1µs/call | |||||
# spent 41µs within OpenBSD::PackageRepositoryBase::CORE:subst which was called 43 times, avg 960ns/call:
# 40 times (28µs+0s) by OpenBSD::PackageRepositoryBase::canonicalize at line 154, avg 713ns/call
# 2 times (3µs+0s) by OpenBSD::PackageRepositoryBase::parse_url at line 67, avg 2µs/call
# once (9µs+0s) by OpenBSD::PackageRepositoryBase::parse_url at line 80 | |||||
# spent 12µs within OpenBSD::PackageRepositoryBase::CORE:substcont which was called 2 times, avg 6µs/call:
# 2 times (12µs+0s) by OpenBSD::PackageRepositoryBase::parse_url at line 67, avg 6µs/call |