← Index
NYTProf Performance Profile   « line view »
For /usr/sbin/pkg_info
  Run on Fri Aug 4 10:12:01 2017
Reported on Fri Aug 4 10:12:17 2017

Filename/usr/libdata/perl5/OpenBSD/PackageRepositoryList.pm
StatementsExecuted 51 statements in 670µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
21189µs465msOpenBSD::PackageRepositoryList::::do_somethingOpenBSD::PackageRepositoryList::do_something
11150µs1.27sOpenBSD::PackageRepositoryList::::match_locationsOpenBSD::PackageRepositoryList::match_locations
21135µs465msOpenBSD::PackageRepositoryList::::findOpenBSD::PackageRepositoryList::find
21131µs31µsOpenBSD::PackageRepositoryList::::filter_newOpenBSD::PackageRepositoryList::filter_new
21124µs55µsOpenBSD::PackageRepositoryList::::addOpenBSD::PackageRepositoryList::add
11118µs21µsOpenBSD::PackageLocator::::BEGIN@18 OpenBSD::PackageLocator::BEGIN@18
1119µs17µsOpenBSD::PackageLocator::::BEGIN@19 OpenBSD::PackageLocator::BEGIN@19
1115µs5µsOpenBSD::PackageRepositoryList::::newOpenBSD::PackageRepositoryList::new
0000s0sOpenBSD::PackageRepositoryList::::grabPlistOpenBSD::PackageRepositoryList::grabPlist
0000s0sOpenBSD::PackageRepositoryList::::prependOpenBSD::PackageRepositoryList::prepend
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# ex:ts=8 sw=4:
2# $OpenBSD: PackageRepositoryList.pm,v 1.31 2017/05/29 12:28:54 espie Exp $
3#
4# Copyright (c) 2003-2006 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
18236µs225µs
# spent 21µs (18+3) within OpenBSD::PackageLocator::BEGIN@18 which was called: # once (18µs+3µs) by OpenBSD::PackageLocator::BEGIN@23 at line 18
use strict;
# spent 21µs making 1 call to OpenBSD::PackageLocator::BEGIN@18 # spent 4µs making 1 call to strict::import
192405µs224µs
# spent 17µs (9+8) within OpenBSD::PackageLocator::BEGIN@19 which was called: # once (9µs+8µs) by OpenBSD::PackageLocator::BEGIN@23 at line 19
use warnings;
# spent 17µs making 1 call to OpenBSD::PackageLocator::BEGIN@19 # spent 8µs making 1 call to warnings::import
20
21package OpenBSD::PackageRepositoryList;
22
23sub new
24
# spent 5µs within OpenBSD::PackageRepositoryList::new which was called: # once (5µs+0s) by OpenBSD::PackageLocator::build_default_path at line 59 of OpenBSD/PackageLocator.pm
{
251800ns my ($class, $state) = @_;
2619µs return bless {l => [], k => {}, state => $state}, $class;
27}
28
29sub filter_new
30
# spent 31µs within OpenBSD::PackageRepositoryList::filter_new which was called 2 times, avg 15µs/call: # 2 times (31µs+0s) by OpenBSD::PackageRepositoryList::add at line 45, avg 15µs/call
{
3122µs my $self = shift;
3223µs my @l = ();
3325µs for my $r (@_) {
3422µs next if !defined $r;
3524µs next if $self->{k}{$r};
3626µs $self->{k}{$r} = 1;
3725µs push @l, $r;
38 }
3928µs return @l;
40}
41
42sub add
43
# spent 55µs (24+31) within OpenBSD::PackageRepositoryList::add which was called 2 times, avg 27µs/call: # 2 times (24µs+31µs) by OpenBSD::PackageLocator::add_default at line 50 of OpenBSD/PackageLocator.pm, avg 27µs/call
{
4422µs my $self = shift;
45217µs231µs push @{$self->{l}}, $self->filter_new(@_);
# spent 31µs making 2 calls to OpenBSD::PackageRepositoryList::filter_new, avg 15µs/call
46}
47
48sub prepend
49{
50 my $self = shift;
51 unshift @{$self->{l}}, $self->filter_new(@_);
52}
53
54sub do_something
55
# spent 465ms (89µs+465) within OpenBSD::PackageRepositoryList::do_something which was called 2 times, avg 232ms/call: # 2 times (89µs+465ms) by OpenBSD::PackageRepositoryList::find at line 71, avg 232ms/call
{
5623µs my ($self, $do, $pkgname, @args) = @_;
5723µs if (defined $pkgname && $pkgname eq '-') {
58 return OpenBSD::PackageRepository->pipe->new($self->{state})->$do($pkgname, @args);
59 }
6024µs for my $repo (@{$self->{l}}) {
61454µs4465ms my $r = $repo->$do($pkgname, @args);
# spent 465ms making 2 calls to OpenBSD::PackageRepository::HTTPorFTP::find, avg 232ms/call # spent 253µs making 2 calls to OpenBSD::PackageRepository::find, avg 127µs/call
62428µs return $r if defined $r;
63 }
64 return undef;
65}
66
67sub find
68
# spent 465ms (35µs+465) within OpenBSD::PackageRepositoryList::find which was called 2 times, avg 232ms/call: # 2 times (35µs+465ms) by OpenBSD::PackageLocator::find at line 102 of OpenBSD/PackageLocator.pm, avg 232ms/call
{
6923µs my ($self, @args) = @_;
70
71224µs2465ms return $self->do_something('find', @args);
# spent 465ms making 2 calls to OpenBSD::PackageRepositoryList::do_something, avg 232ms/call
72}
73
74sub grabPlist
75{
76 my ($self, @args) = @_;
77 return $self->do_something('grabPlist', @args);
78}
79
80sub match_locations
81
# spent 1.27s (50µs+1.27) within OpenBSD::PackageRepositoryList::match_locations which was called: # once (50µs+1.27s) by OpenBSD::PackageLocator::match_locations at line 128 of OpenBSD/PackageLocator.pm
{
8212µs my ($self, @search) = @_;
8314µs for my $repo (@{$self->{l}}) {
84220µs21.27s my $l = $repo->match_locations(@search);
# spent 1.27s making 2 calls to OpenBSD::PackageRepositoryBase::match_locations, avg 634ms/call
85218µs if (@$l > 0) {
86 return $l;
87 }
88 }
89 return [];
90}
91
9214µs1;