← Index
NYTProf Performance Profile   « line view »
For /usr/local/bin/sa-learn
  Run on Tue Nov 7 05:38:10 2017
Reported on Tue Nov 7 06:16:01 2017

Filename/usr/local/lib/perl5/site_perl/mach/5.24/Net/Patricia.pm
StatementsExecuted 125 statements in 6.65ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1116.89ms7.39msNet::Patricia::::BEGIN@108 Net::Patricia::BEGIN@108
1112.69ms4.81msNet::Patricia::::BEGIN@31 Net::Patricia::BEGIN@31
411420µs788µsNet::Patricia::::add_string Net::Patricia::add_string
411144µs229µsNet::Patricia::AF_INET6::::addNet::Patricia::AF_INET6::add
411113µs140µsNet::Patricia::::_ip_bits Net::Patricia::_ip_bits
31176µs128µsNet::Patricia::::new Net::Patricia::new
11166µs66µsNet::Patricia::::bootstrap Net::Patricia::bootstrap (xsub)
41154µs54µsNet::Patricia::::_add Net::Patricia::_add (xsub)
31153µs53µsNet::Patricia::::_new Net::Patricia::_new (xsub)
11149µs64µsNet::Patricia::::BEGIN@26 Net::Patricia::BEGIN@26
11143µs43µsNet::Patricia::AF_INET6::::BEGIN@239Net::Patricia::AF_INET6::BEGIN@239
11141µs41µsNet::Patricia::::BEGIN@36 Net::Patricia::BEGIN@36
11133µs33µsNet::Patricia::AF_INET::::BEGIN@152 Net::Patricia::AF_INET::BEGIN@152
11132µs188µsNet::Patricia::AF_INET::::BEGIN@150 Net::Patricia::AF_INET::BEGIN@150
11131µs265µsNet::Patricia::::BEGIN@32 Net::Patricia::BEGIN@32
11129µs184µsNet::Patricia::AF_INET::::BEGIN@149 Net::Patricia::AF_INET::BEGIN@149
11129µs242µsNet::Patricia::AF_INET6::::BEGIN@236Net::Patricia::AF_INET6::BEGIN@236
41127µs27µsNet::Patricia::::CORE:subst Net::Patricia::CORE:subst (opcode)
11126µs243µsNet::Patricia::AF_INET::::BEGIN@148 Net::Patricia::AF_INET::BEGIN@148
11126µs2.86msNet::Patricia::::BEGIN@34 Net::Patricia::BEGIN@34
11124µs219µsNet::Patricia::AF_INET6::::BEGIN@234Net::Patricia::AF_INET6::BEGIN@234
11123µs46µsNet::Patricia::::BEGIN@27 Net::Patricia::BEGIN@27
11122µs139µsNet::Patricia::AF_INET6::::BEGIN@235Net::Patricia::AF_INET6::BEGIN@235
11121µs154µsNet::Patricia::AF_INET6::::BEGIN@237Net::Patricia::AF_INET6::BEGIN@237
11120µs234µsNet::Patricia::::BEGIN@33 Net::Patricia::BEGIN@33
11113µs13µ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
26271µs280µs
# spent 64µs (49+15) within Net::Patricia::BEGIN@26 which was called: # once (49µs+15µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 26
use strict;
# spent 64µs making 1 call to Net::Patricia::BEGIN@26 # spent 15µs making 1 call to strict::import
27284µs269µs
# spent 46µs (23+23) within Net::Patricia::BEGIN@27 which was called: # once (23µs+23µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 27
use warnings;
# spent 46µs making 1 call to Net::Patricia::BEGIN@27 # spent 23µs making 1 call to warnings::import
28
29135µsrequire 5.008;
30
312326µs24.92ms
# spent 4.81ms (2.69+2.12) within Net::Patricia::BEGIN@31 which was called: # once (2.69ms+2.12ms) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 31
use version;
# spent 4.81ms making 1 call to Net::Patricia::BEGIN@31 # spent 114µs making 1 call to version::import
32288µs2498µs
# spent 265µs (31+234) within Net::Patricia::BEGIN@32 which was called: # once (31µs+234µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 32
use Carp;
# spent 265µs making 1 call to Net::Patricia::BEGIN@32 # spent 234µs making 1 call to Exporter::import
33265µs2448µs
# spent 234µs (20+214) within Net::Patricia::BEGIN@33 which was called: # once (20µs+214µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 33
use vars qw($VERSION @ISA @EXPORT);
# spent 234µs making 1 call to Net::Patricia::BEGIN@33 # spent 214µs making 1 call to vars::import
342128µs25.70ms
# spent 2.86ms (26µs+2.84) within Net::Patricia::BEGIN@34 which was called: # once (26µs+2.84ms) 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.84ms making 1 call to Exporter::import
35
36
# spent 41µs within Net::Patricia::BEGIN@36 which was called: # once (41µs+0s) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 41
BEGIN {
3712µs require Exporter;
3818µs require DynaLoader;
39120µs @ISA = qw(Exporter DynaLoader);
40115µs @EXPORT = qw(AF_INET AF_INET6);
4111.32ms141µs}
# spent 41µs making 1 call to Net::Patricia::BEGIN@36
42
43136µs113µs'$Revision: 1.22 $' =~ m/(\d+)\.(\d+)((_\d+)|)/ && ( $VERSION = "$1.$2$3");
# spent 13µs making 1 call to Net::Patricia::CORE:match
44
45124µs1620µsbootstrap Net::Patricia $VERSION;
# spent 620µs making 1 call to DynaLoader::bootstrap
46
47
# spent 128µs (76+53) within Net::Patricia::new which was called 3 times, avg 43µs/call: # 3 times (76µs+53µs) by Mail::SpamAssassin::NetSet::new at line 55 of Mail/SpamAssassin/NetSet.pm, avg 43µs/call
sub new {
4837µs my ($class, $type) = @_;
49
5036µ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) {
573117µs353µs return bless _new(128), 'Net::Patricia::AF_INET6';
# spent 53µs making 3 calls to Net::Patricia::_new, avg 18µs/call
58 }
59
60 croak "new: unimplemented type";
61}
62
63##
64## Compat functions
65##
66
67
# spent 140µs (113+27) within Net::Patricia::_ip_bits which was called 4 times, avg 35µs/call: # 4 times (113µs+27µs) by Net::Patricia::add_string at line 83, avg 35µs/call
sub _ip_bits {
6848µs my ($self, $str) = @_;
6947µs my $bits;
70
71419µs if (ref ($self) eq 'Net::Patricia::AF_INET6') {
72471µs427µs $bits = ($str =~ s|/(\d+)$||) ? $1 : 128;
# spent 27µs making 4 calls to Net::Patricia::CORE:subst, avg 7µs/call
73 } else {
74 $bits = ($str =~ s|/(\d+)$||) ? $1 : 32;
75 }
764348µs ($str,$bits);
77}
78
79
# spent 788µs (420+369) within Net::Patricia::add_string which was called 4 times, avg 197µs/call: # 4 times (420µs+369µs) by Mail::SpamAssassin::NetSet::add_cidr at line 147 of Mail/SpamAssassin/NetSet.pm, avg 197µ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;
83478µs8369µs $self->add($self->_ip_bits($str),$data);
# spent 229µs making 4 calls to Net::Patricia::AF_INET6::add, avg 57µs/call # spent 140µs making 4 calls to Net::Patricia::_ip_bits, avg 35µ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.39ms (6.89+504µs) within Net::Patricia::BEGIN@108 which was called: # once (6.89ms+504µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 140
BEGIN {
10919µs eval {
11012µs my $class = 'Net::CIDR::Lite';
111153µs eval "require $class";
# spent 221µs executing statements in string eval
112 };
113115µ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 }
140169µs17.39ms}
# spent 7.39ms making 1 call to Net::Patricia::BEGIN@108
141
142##
143## AF_INET
144##
145
146package Net::Patricia::AF_INET;
147
148271µs2460µs
# spent 243µs (26+217) within Net::Patricia::AF_INET::BEGIN@148 which was called: # once (26µs+217µ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 217µs making 1 call to Exporter::import
149280µs2339µs
# spent 184µs (29+155) within Net::Patricia::AF_INET::BEGIN@149 which was called: # once (29µs+155µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 149
use Socket qw(AF_INET inet_aton inet_ntoa);
# spent 184µs making 1 call to Net::Patricia::AF_INET::BEGIN@149 # spent 155µs making 1 call to Exporter::import
1502119µs2344µs
# spent 188µs (32+156) within Net::Patricia::AF_INET::BEGIN@150 which was called: # once (32µs+156µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 150
use vars qw(@ISA @EXPORT);
# spent 188µs making 1 call to Net::Patricia::AF_INET::BEGIN@150 # spent 156µs making 1 call to vars::import
151
152
# spent 33µs within Net::Patricia::AF_INET::BEGIN@152 which was called: # once (33µs+0s) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 157
BEGIN {
15312µs require Exporter;
15412µs require DynaLoader;
155120µs @ISA = qw(Exporter DynaLoader Net::Patricia);
156124µs @EXPORT = qw(AF_INET);
15711.35ms133µs}
# spent 33µ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
234262µs2414µs
# spent 219µs (24+195) within Net::Patricia::AF_INET6::BEGIN@234 which was called: # once (24µs+195µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 234
use Carp;
# spent 219µs making 1 call to Net::Patricia::AF_INET6::BEGIN@234 # spent 195µs making 1 call to Exporter::import
235266µs2257µs
# spent 139µs (22+118) within Net::Patricia::AF_INET6::BEGIN@235 which was called: # once (22µs+118µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 235
use Socket qw(AF_INET6);
# spent 139µs making 1 call to Net::Patricia::AF_INET6::BEGIN@235 # spent 118µs making 1 call to Exporter::import
236279µs2456µs
# spent 242µs (29+214) within Net::Patricia::AF_INET6::BEGIN@236 which was called: # once (29µs+214µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 236
use Socket6 qw(inet_pton inet_ntop);
# spent 242µs making 1 call to Net::Patricia::AF_INET6::BEGIN@236 # spent 214µs making 1 call to Exporter::import
2372137µs2286µs
# spent 154µs (21+132) within Net::Patricia::AF_INET6::BEGIN@237 which was called: # once (21µs+132µs) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 237
use vars qw(@ISA @EXPORT);
# spent 154µs making 1 call to Net::Patricia::AF_INET6::BEGIN@237 # spent 132µs making 1 call to vars::import
238
239
# spent 43µs within Net::Patricia::AF_INET6::BEGIN@239 which was called: # once (43µs+0s) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 244
BEGIN {
24012µs require Exporter;
24112µs require DynaLoader;
242122µs @ISA = qw(Exporter DynaLoader Net::Patricia);
243118µs @EXPORT = qw(AF_INET6);
24411.26ms143µs}
# spent 43µs making 1 call to Net::Patricia::AF_INET6::BEGIN@239
245
246
# spent 229µs (144+85) within Net::Patricia::AF_INET6::add which was called 4 times, avg 57µs/call: # 4 times (144µs+85µs) by Net::Patricia::add_string at line 83, avg 57µs/call
sub add {
247410µs croak "add: wrong number of args" if (@_ < 2 || @_ > 4);
248412µs my ($self, $ip, $bits, $data) = @_;
24948µs $data = (defined $bits ? "$ip/$bits" : $ip) if (@_ < 3);
250469µs430µs my $packed = inet_pton(AF_INET6, $ip);
# spent 30µs making 4 calls to Socket6::inet_pton, avg 8µs/call
251415µs croak("invalid key") unless (defined $packed);
25247µs $bits = 128 if (@_ < 4);
2534118µs454µs $self->SUPER::_add(AF_INET6, $packed, $bits, $data);
# spent 54µ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
315124µs1;
316__END__
 
# spent 13µs within Net::Patricia::CORE:match which was called: # once (13µs+0s) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 43
sub Net::Patricia::CORE:match; # opcode
# spent 27µs within Net::Patricia::CORE:subst which was called 4 times, avg 7µs/call: # 4 times (27µs+0s) by Net::Patricia::_ip_bits at line 72, avg 7µs/call
sub Net::Patricia::CORE:subst; # opcode
# spent 54µs within Net::Patricia::_add which was called 4 times, avg 14µs/call: # 4 times (54µs+0s) by Net::Patricia::AF_INET6::add at line 253, avg 14µs/call
sub Net::Patricia::_add; # xsub
# spent 53µs within Net::Patricia::_new which was called 3 times, avg 18µs/call: # 3 times (53µs+0s) by Net::Patricia::new at line 57, avg 18µs/call
sub Net::Patricia::_new; # xsub
# spent 66µs within Net::Patricia::bootstrap which was called: # once (66µs+0s) by DynaLoader::bootstrap at line 210 of DynaLoader.pm
sub Net::Patricia::bootstrap; # xsub