← Index
NYTProf Performance Profile   « line view »
For /usr/local/bin/sa-learn
  Run on Sun Nov 5 02:36:06 2017
Reported on Sun Nov 5 02:56:18 2017

Filename/usr/local/lib/perl5/site_perl/mach/5.24/Net/Patricia.pm
StatementsExecuted 125 statements in 6.35ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1116.94ms7.46msNet::Patricia::::BEGIN@108 Net::Patricia::BEGIN@108
1112.63ms4.75msNet::Patricia::::BEGIN@31 Net::Patricia::BEGIN@31
411385µs755µsNet::Patricia::::add_string Net::Patricia::add_string
411135µs221µsNet::Patricia::AF_INET6::::addNet::Patricia::AF_INET6::add
411112µs149µsNet::Patricia::::_ip_bits Net::Patricia::_ip_bits
31170µs119µsNet::Patricia::::new Net::Patricia::new
11167µs67µsNet::Patricia::::bootstrap Net::Patricia::bootstrap (xsub)
41155µs55µsNet::Patricia::::_add Net::Patricia::_add (xsub)
31149µs49µsNet::Patricia::::_new Net::Patricia::_new (xsub)
11147µs63µsNet::Patricia::::BEGIN@26 Net::Patricia::BEGIN@26
11143µs43µsNet::Patricia::AF_INET::::BEGIN@152 Net::Patricia::AF_INET::BEGIN@152
11142µs42µsNet::Patricia::AF_INET6::::BEGIN@239Net::Patricia::AF_INET6::BEGIN@239
11138µs38µsNet::Patricia::::BEGIN@36 Net::Patricia::BEGIN@36
41136µs36µsNet::Patricia::::CORE:subst Net::Patricia::CORE:subst (opcode)
11132µs237µsNet::Patricia::::BEGIN@33 Net::Patricia::BEGIN@33
11132µs238µsNet::Patricia::::BEGIN@32 Net::Patricia::BEGIN@32
11132µs186µsNet::Patricia::AF_INET::::BEGIN@150 Net::Patricia::AF_INET::BEGIN@150
11131µs200µsNet::Patricia::AF_INET6::::BEGIN@236Net::Patricia::AF_INET6::BEGIN@236
11130µs2.86msNet::Patricia::::BEGIN@34 Net::Patricia::BEGIN@34
11126µs196µsNet::Patricia::AF_INET::::BEGIN@149 Net::Patricia::AF_INET::BEGIN@149
11126µs209µsNet::Patricia::AF_INET6::::BEGIN@234Net::Patricia::AF_INET6::BEGIN@234
11125µs243µsNet::Patricia::AF_INET::::BEGIN@148 Net::Patricia::AF_INET::BEGIN@148
11123µs62µsNet::Patricia::::BEGIN@27 Net::Patricia::BEGIN@27
11122µs147µsNet::Patricia::AF_INET6::::BEGIN@235Net::Patricia::AF_INET6::BEGIN@235
11121µs157µsNet::Patricia::AF_INET6::::BEGIN@237Net::Patricia::AF_INET6::BEGIN@237
11112µs12µsNet::Patricia::::CORE:match Net::Patricia::CORE:match (opcode)
0000s0sNet::Patricia::AF_INET6::::add_integerNet::Patricia::AF_INET6::add_integer
0000s0sNet::Patricia::AF_INET6::::exactNet::Patricia::AF_INET6::exact
0000s0sNet::Patricia::AF_INET6::::exact_integerNet::Patricia::AF_INET6::exact_integer
0000s0sNet::Patricia::AF_INET6::::matchNet::Patricia::AF_INET6::match
0000s0sNet::Patricia::AF_INET6::::match_integerNet::Patricia::AF_INET6::match_integer
0000s0sNet::Patricia::AF_INET6::::removeNet::Patricia::AF_INET6::remove
0000s0sNet::Patricia::AF_INET6::::remove_integerNet::Patricia::AF_INET6::remove_integer
0000s0sNet::Patricia::AF_INET::::add Net::Patricia::AF_INET::add
0000s0sNet::Patricia::AF_INET::::add_integer Net::Patricia::AF_INET::add_integer
0000s0sNet::Patricia::AF_INET::::exact Net::Patricia::AF_INET::exact
0000s0sNet::Patricia::AF_INET::::exact_integer Net::Patricia::AF_INET::exact_integer
0000s0sNet::Patricia::AF_INET::::match Net::Patricia::AF_INET::match
0000s0sNet::Patricia::AF_INET::::match_integer Net::Patricia::AF_INET::match_integer
0000s0sNet::Patricia::AF_INET::::remove Net::Patricia::AF_INET::remove
0000s0sNet::Patricia::AF_INET::::remove_integer Net::Patricia::AF_INET::remove_integer
0000s0sNet::Patricia::::add_cidr Net::Patricia::add_cidr
0000s0sNet::Patricia::::match_exact_integer Net::Patricia::match_exact_integer
0000s0sNet::Patricia::::match_exact_string Net::Patricia::match_exact_string
0000s0sNet::Patricia::::match_string Net::Patricia::match_string
0000s0sNet::Patricia::::remove_cidr Net::Patricia::remove_cidr
0000s0sNet::Patricia::::remove_string Net::Patricia::remove_string
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# Net::Patricia - Patricia Trie perl module for fast IP address lookups
2# Copyright (C) 2000-2005 Dave Plonka
3# Copyright (C) 2009 Dave Plonka & Philip Prindeville
4#
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18# MA 02110-1301, USA.
19
20# Dave Plonka <plonka@doit.wisc.edu>
21# Philip Prindeville <philipp@redfish-solutions.com>
22# Anton Berezin <tobez@tobez.org>
23
24package Net::Patricia;
25
26274µs278µs
# spent 63µs (47+16) within Net::Patricia::BEGIN@26 which was called: # once (47µs+16µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 26
use strict;
# spent 63µs making 1 call to Net::Patricia::BEGIN@26 # spent 16µs making 1 call to strict::import
27290µs2101µs
# spent 62µs (23+39) within Net::Patricia::BEGIN@27 which was called: # once (23µs+39µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 27
use warnings;
# spent 62µs making 1 call to Net::Patricia::BEGIN@27 # spent 39µs making 1 call to warnings::import
28
29140µsrequire 5.008;
30
312335µs24.85ms
# spent 4.75ms (2.63+2.11) within Net::Patricia::BEGIN@31 which was called: # once (2.63ms+2.11ms) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 31
use version;
# spent 4.75ms making 1 call to Net::Patricia::BEGIN@31 # spent 108µs making 1 call to version::import
32298µs2444µs
# spent 238µs (32+206) within Net::Patricia::BEGIN@32 which was called: # once (32µs+206µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 32
use Carp;
# spent 238µs making 1 call to Net::Patricia::BEGIN@32 # spent 206µs making 1 call to Exporter::import
33272µs2441µs
# spent 237µs (32+204) within Net::Patricia::BEGIN@33 which was called: # once (32µs+204µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 33
use vars qw($VERSION @ISA @EXPORT);
# spent 237µs making 1 call to Net::Patricia::BEGIN@33 # spent 204µs making 1 call to vars::import
342127µs25.69ms
# spent 2.86ms (30µs+2.83) within Net::Patricia::BEGIN@34 which was called: # once (30µs+2.83ms) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 34
use Socket qw(AF_INET AF_INET6);
# spent 2.86ms making 1 call to Net::Patricia::BEGIN@34 # spent 2.83ms making 1 call to Exporter::import
35
36
# spent 38µs within Net::Patricia::BEGIN@36 which was called: # once (38µs+0s) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 41
BEGIN {
3716µs require Exporter;
3812µs require DynaLoader;
39120µs @ISA = qw(Exporter DynaLoader);
40121µs @EXPORT = qw(AF_INET AF_INET6);
4111.31ms138µs}
# spent 38µs making 1 call to Net::Patricia::BEGIN@36
42
43132µs112µs'$Revision: 1.22 $' =~ m/(\d+)\.(\d+)((_\d+)|)/ && ( $VERSION = "$1.$2$3");
# spent 12µs making 1 call to Net::Patricia::CORE:match
44
45120µs1632µsbootstrap Net::Patricia $VERSION;
# spent 632µs making 1 call to DynaLoader::bootstrap
46
47
# spent 119µs (70+49) within Net::Patricia::new which was called 3 times, avg 40µs/call: # 3 times (70µs+49µs) by Mail::SpamAssassin::NetSet::new at line 55 of Mail/SpamAssassin/NetSet.pm, avg 40µs/call
sub new {
4836µs my ($class, $type) = @_;
49
5035µs $type ||= AF_INET;
51
5236µs if ($type == AF_INET) {
53 return bless _new(32), 'Net::Patricia::AF_INET';
54 }
55
5636µs if ($type == AF_INET6) {
573111µs349µs return bless _new(128), 'Net::Patricia::AF_INET6';
# spent 49µs making 3 calls to Net::Patricia::_new, avg 16µs/call
58 }
59
60 croak "new: unimplemented type";
61}
62
63##
64## Compat functions
65##
66
67
# spent 149µs (112+36) within Net::Patricia::_ip_bits which was called 4 times, avg 37µs/call: # 4 times (112µs+36µs) by Net::Patricia::add_string at line 83, avg 37µs/call
sub _ip_bits {
6848µs my ($self, $str) = @_;
6947µs my $bits;
70
71428µs if (ref ($self) eq 'Net::Patricia::AF_INET6') {
72483µs436µs $bits = ($str =~ s|/(\d+)$||) ? $1 : 128;
# spent 36µs making 4 calls to Net::Patricia::CORE:subst, avg 9µs/call
73 } else {
74 $bits = ($str =~ s|/(\d+)$||) ? $1 : 32;
75 }
764305µs ($str,$bits);
77}
78
79
# spent 755µs (385+370) within Net::Patricia::add_string which was called 4 times, avg 189µs/call: # 4 times (385µs+370µs) by Mail::SpamAssassin::NetSet::add_cidr at line 147 of Mail/SpamAssassin/NetSet.pm, avg 189µs/call
sub add_string {
80410µs croak "add_string: wrong number of args" if (@_ < 2 || @_ > 3);
8149µs my ($self,$str,$data) = @_;
8248µs $data = $str unless @_ > 2;
83479µs8370µs $self->add($self->_ip_bits($str),$data);
# spent 221µs making 4 calls to Net::Patricia::AF_INET6::add, avg 55µs/call # spent 149µs making 4 calls to Net::Patricia::_ip_bits, avg 37µs/call
84}
85
86sub match_string {
87 croak "match_string: wrong number of args" if (@_ != 2);
88 my ($self,$str) = @_;
89 $self->match($self->_ip_bits($str))
90}
91
92sub match_exact_string {
93 croak "match_exact_string: wrong number of args" if (@_ != 2);
94 my ($self,$str) = @_;
95 $self->exact($self->_ip_bits($str))
96}
97
98sub match_exact_integer {
99 shift->exact_integer(@_)
100}
101
102sub remove_string {
103 croak "remove_string: wrong number of args" if (@_ != 2);
104 my ($self,$str) = @_;
105 $self->remove($self->_ip_bits($str))
106}
107
108
# spent 7.46ms (6.94+518µs) within Net::Patricia::BEGIN@108 which was called: # once (6.94ms+518µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 140
BEGIN {
10915µs eval {
11012µs my $class = 'Net::CIDR::Lite';
111149µs eval "require $class";
# spent 214µs executing statements in string eval
112 };
113113µs last if (@_);
114
115 sub add_cidr {
116 croak "add_cidr: wrong number of args" if (@_ != 3);
117 my ($self, $range, $data) = @_;
118 my $cidr = Net::CIDR::Lite->new();
119 $cidr->add_range($range);
120
121 my @list = ();
122 for ($cidr->list()) {
123 push(@list, $_) if ($self->add_string($_, $data));
124 }
125 @list;
126 }
127
128 sub remove_cidr {
129 croak "remove_cidr: wrong number of args" if (@_ != 2);
130 my ($self, $range) = @_;
131 my $cidr = Net::CIDR::Lite->new();
132 $cidr->add_range($range);
133
134 my @list = ();
135 for ($cidr->list()) {
136 push(@list, $_) if ($self->remove_string($_));
137 }
138 @list;
139 }
140166µs17.46ms}
# spent 7.46ms making 1 call to Net::Patricia::BEGIN@108
141
142##
143## AF_INET
144##
145
146package Net::Patricia::AF_INET;
147
148270µs2462µs
# spent 243µs (25+218) within Net::Patricia::AF_INET::BEGIN@148 which was called: # once (25µs+218µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 148
use Carp;
# spent 243µs making 1 call to Net::Patricia::AF_INET::BEGIN@148 # spent 218µs making 1 call to Exporter::import
149275µs2365µs
# spent 196µs (26+170) within Net::Patricia::AF_INET::BEGIN@149 which was called: # once (26µs+170µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 149
use Socket qw(AF_INET inet_aton inet_ntoa);
# spent 196µs making 1 call to Net::Patricia::AF_INET::BEGIN@149 # spent 170µs making 1 call to Exporter::import
1502118µs2340µs
# spent 186µs (32+154) within Net::Patricia::AF_INET::BEGIN@150 which was called: # once (32µs+154µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 150
use vars qw(@ISA @EXPORT);
# spent 186µs making 1 call to Net::Patricia::AF_INET::BEGIN@150 # spent 154µs making 1 call to vars::import
151
152
# spent 43µs within Net::Patricia::AF_INET::BEGIN@152 which was called: # once (43µs+0s) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 157
BEGIN {
15312µs require Exporter;
15412µs require DynaLoader;
155127µs @ISA = qw(Exporter DynaLoader Net::Patricia);
156117µs @EXPORT = qw(AF_INET);
15711.18ms143µs}
# spent 43µs making 1 call to Net::Patricia::AF_INET::BEGIN@152
158
159sub add {
160 croak "add: wrong number of args" if (@_ < 2 || @_ > 4);
161 my ($self, $ip, $bits, $data) = @_;
162 $data = (defined $bits ? "$ip/$bits" : $ip) if (@_ < 4);
163 my $packed = inet_aton($ip);
164 croak("invalid key") unless (defined $packed);
165 $bits = 32 if (@_ < 3);
166 $self->SUPER::_add(AF_INET, $packed, $bits, $data);
167}
168
169sub add_integer {
170 croak "add_integer: wrong number of args" if (@_ < 2 || @_ > 4);
171 my ($self, $num, $bits, $data) = @_;
172 my $packed = pack("N", $num);
173 my $ip = inet_ntoa($packed);
174 croak("invalid address") unless (defined $ip);
175 $data = (defined $bits ? "$ip/$bits" : $ip) if (@_ < 4);
176 $bits = 32 if (@_ < 3);
177 $self->SUPER::_add(AF_INET, $packed, $bits, $data);
178}
179
180sub match_integer {
181 croak "match_integer: wrong number of args" if (@_ < 2 || @_ > 3);
182 my ($self, $num, $bits) = @_;
183 $bits = 32 if (@_ < 3);
184 $self->SUPER::_match(AF_INET, pack("N",$num), $bits);
185}
186
187sub exact_integer {
188 croak "exact_integer: wrong number of args" if (@_ < 2 || @_ > 3);
189 my ($self, $num, $bits) = @_;
190 $bits = 32 if (@_ < 3);
191 $self->SUPER::_exact(AF_INET, pack("N",$num), $bits);
192}
193
194sub match {
195 croak "match: wrong number of args" if (@_ < 2 || @_ > 3);
196 my ($self, $ip, $bits) = @_;
197 my $packed = inet_aton($ip);
198 croak("invalid key") unless (defined $packed);
199 $bits = 32 if (@_ < 3);
200 $self->SUPER::_match(AF_INET, $packed, $bits);
201}
202
203sub exact {
204 croak "exact: wrong number of args" if (@_ < 2 || @_ > 3);
205 my ($self, $ip, $bits) = @_;
206 my $packed = inet_aton($ip);
207 croak("invalid key") unless (defined $packed);
208 $bits = 32 if (@_ < 3);
209 $self->SUPER::_exact(AF_INET, $packed, $bits);
210}
211
212sub remove {
213 croak "remove: wrong number of args" if (@_ < 2 || @_ > 3);
214 my ($self, $ip, $bits) = @_;
215 my $packed = inet_aton($ip);
216 croak("invalid key") unless (defined $packed);
217 $bits = 32 if (@_ < 3);
218 $self->SUPER::_remove(AF_INET, $packed, $bits);
219}
220
221sub remove_integer {
222 croak "remote_integer: wrong number of args" if (@_ < 2 || @_ > 3);
223 my ($self, $num, $bits) = @_;
224 $bits = 32 if (@_ < 3);
225 $self->SUPER::_remove(AF_INET, pack("N",$num), $bits);
226}
227
228##
229## AF_INET6
230##
231
232package Net::Patricia::AF_INET6;
233
234261µs2393µs
# spent 209µs (26+184) within Net::Patricia::AF_INET6::BEGIN@234 which was called: # once (26µs+184µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 234
use Carp;
# spent 209µs making 1 call to Net::Patricia::AF_INET6::BEGIN@234 # spent 184µs making 1 call to Exporter::import
235271µs2272µs
# spent 147µs (22+125) within Net::Patricia::AF_INET6::BEGIN@235 which was called: # once (22µs+125µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 235
use Socket qw(AF_INET6);
# spent 147µs making 1 call to Net::Patricia::AF_INET6::BEGIN@235 # spent 125µs making 1 call to Exporter::import
236276µs2369µs
# spent 200µs (31+169) within Net::Patricia::AF_INET6::BEGIN@236 which was called: # once (31µs+169µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 236
use Socket6 qw(inet_pton inet_ntop);
# spent 200µs making 1 call to Net::Patricia::AF_INET6::BEGIN@236 # spent 169µs making 1 call to Exporter::import
2372116µs2293µs
# spent 157µs (21+136) within Net::Patricia::AF_INET6::BEGIN@237 which was called: # once (21µs+136µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 237
use vars qw(@ISA @EXPORT);
# spent 157µs making 1 call to Net::Patricia::AF_INET6::BEGIN@237 # spent 136µs making 1 call to vars::import
238
239
# spent 42µs within Net::Patricia::AF_INET6::BEGIN@239 which was called: # once (42µs+0s) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 244
BEGIN {
24012µs require Exporter;
24112µs require DynaLoader;
242126µs @ISA = qw(Exporter DynaLoader Net::Patricia);
243118µs @EXPORT = qw(AF_INET6);
24411.18ms142µs}
# spent 42µs making 1 call to Net::Patricia::AF_INET6::BEGIN@239
245
246
# spent 221µs (135+86) within Net::Patricia::AF_INET6::add which was called 4 times, avg 55µs/call: # 4 times (135µs+86µs) by Net::Patricia::add_string at line 83, avg 55µs/call
sub add {
247410µs croak "add: wrong number of args" if (@_ < 2 || @_ > 4);
248412µs my ($self, $ip, $bits, $data) = @_;
24947µs $data = (defined $bits ? "$ip/$bits" : $ip) if (@_ < 3);
250463µs430µs my $packed = inet_pton(AF_INET6, $ip);
# spent 30µs making 4 calls to Socket6::inet_pton, avg 8µs/call
25147µs croak("invalid key") unless (defined $packed);
25248µs $bits = 128 if (@_ < 4);
2534125µs455µs $self->SUPER::_add(AF_INET6, $packed, $bits, $data);
# spent 55µs making 4 calls to Net::Patricia::_add, avg 14µs/call
254}
255
256sub add_integer {
257 croak "add_integer: wrong number of args" if (@_ < 2 || @_ > 4);
258 my ($self, $num, $bits, $data) = @_;
259 my $packed = pack("N", $num);
260 my $ip = inet_ntop(AF_INET6, $packed);
261 croak("invalid address") unless (defined $ip);
262 $data = (defined $bits ? "$ip/$bits" : $ip) if (@_ < 3);
263 $bits = 128 if (@_ < 4);
264 $self->SUPER::_add(AF_INET6, $packed, $bits, $data);
265}
266
267sub match_integer {
268 croak "match_integer: wrong number of args" if (@_ < 2 || @_ > 3);
269 my ($self, $num, $bits) = @_;
270 $bits = 128 if (@_ < 3);
271 $self->SUPER::_match(AF_INET6, pack("N",$num), $bits);
272}
273
274sub exact_integer {
275 croak "exact_integer: wrong number of args" if (@_ < 2 || @_ > 3);
276 my ($self, $num, $bits) = @_;
277 $bits = 128 if (@_ < 3);
278 $self->SUPER::_exact(AF_INET6, pack("N",$num), $bits);
279}
280
281sub match {
282 croak "match: wrong number of args" if (@_ < 2 || @_ > 3);
283 my ($self, $ip, $bits) = @_;
284 my $packed = inet_pton(AF_INET6, $ip);
285 croak("invalid key") unless (defined $packed);
286 $bits = 128 if (@_ < 3);
287 $self->SUPER::_match(AF_INET6, $packed, $bits);
288}
289
290sub exact {
291 croak "exact: wrong number of args" if (@_ < 2 || @_ > 3);
292 my ($self, $ip, $bits) = @_;
293 my $packed = inet_pton(AF_INET6, $ip);
294 croak("invalid key") unless (defined $packed);
295 $bits = 128 if (@_ < 3);
296 $self->SUPER::_exact(AF_INET6, $packed, $bits);
297}
298
299sub remove {
300 croak "remove: wrong number of args" if (@_ < 2 || @_ > 3);
301 my ($self, $ip, $bits) = @_;
302 my $packed = inet_pton(AF_INET6, $ip);
303 croak("invalid key") unless (defined $packed);
304 $bits = 128 if (@_ < 3);
305 $self->SUPER::_remove(AF_INET6, $packed, $bits);
306}
307
308sub remove_integer {
309 croak "remote_integer: wrong number of args" if (@_ < 2 || @_ > 3);
310 my ($self, $num, $bits) = @_;
311 $bits = 128 if (@_ < 3);
312 $self->SUPER::_remove(AF_INET6, pack("N",$num), $bits);
313}
314
315121µs1;
316__END__
 
# spent 12µs within Net::Patricia::CORE:match which was called: # once (12µs+0s) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 43
sub Net::Patricia::CORE:match; # opcode
# spent 36µs within Net::Patricia::CORE:subst which was called 4 times, avg 9µs/call: # 4 times (36µs+0s) by Net::Patricia::_ip_bits at line 72, avg 9µs/call
sub Net::Patricia::CORE:subst; # opcode
# spent 55µs within Net::Patricia::_add which was called 4 times, avg 14µs/call: # 4 times (55µs+0s) by Net::Patricia::AF_INET6::add at line 253, avg 14µs/call
sub Net::Patricia::_add; # xsub
# spent 49µs within Net::Patricia::_new which was called 3 times, avg 16µs/call: # 3 times (49µs+0s) by Net::Patricia::new at line 57, avg 16µs/call
sub Net::Patricia::_new; # xsub
# spent 67µs within Net::Patricia::bootstrap which was called: # once (67µs+0s) by DynaLoader::bootstrap at line 210 of DynaLoader.pm
sub Net::Patricia::bootstrap; # xsub