← Index
NYTProf Performance Profile   « line view »
For rbm/rbm
  Run on Wed Feb 12 03:38:15 2020
Reported on Wed Feb 12 04:56:35 2020

Filename/usr/lib/x86_64-linux-gnu/perl/5.28/Encode.pm
StatementsExecuted 95096 statements in 381ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
403811138ms307msEncode::::encode Encode::encode
50512190.1ms174msEncode::::find_encoding Encode::find_encoding
50511171.1ms83.5msEncode::::getEncoding Encode::getEncoding
40381123.0ms23.0msEncode::utf8::::encode Encode::utf8::encode (xsub)
10131121.8ms63.6msEncode::::decode Encode::decode
50511112.4ms12.4msEncode::::CORE:subst Encode::CORE:subst (opcode)
10131110.1ms13.5msEncode::utf8::::decode Encode::utf8::decode (xsub)
1013112.62ms2.62msEncode::::is_utf8 Encode::is_utf8 (xsub)
1112.30ms5.08msEncode::::BEGIN@55 Encode::BEGIN@55
1111.74ms2.16msEncode::::BEGIN@52 Encode::BEGIN@52
111484µs518µsEncode::::BEGIN@53 Encode::BEGIN@53
111280µs1.63msEncode::UTF_EBCDIC::::BEGIN@305Encode::UTF_EBCDIC::BEGIN@305
111213µs215µsEncode::utf8::::BEGIN@368 Encode::utf8::BEGIN@368
83141µs49µsEncode::::define_encoding Encode::define_encoding
11131µs55µsEncode::::onBOOT Encode::onBOOT (xsub)
11114µs232µsEncode::::BEGIN@9 Encode::BEGIN@9
11112µs34µsEncode::::BEGIN@15 Encode::BEGIN@15
11110µs13µsEncode::::BEGIN@5 Encode::BEGIN@5
1118µs19µsEncode::utf8::::BEGIN@354 Encode::utf8::BEGIN@354
1117µs208µsEncode::::BEGIN@7 Encode::BEGIN@7
1116µs36µsEncode::::BEGIN@6 Encode::BEGIN@6
1116µs21µsEncode::Internal::::BEGIN@334 Encode::Internal::BEGIN@334
1116µs20µsEncode::XS::::BEGIN@349 Encode::XS::BEGIN@349
1113µs3µsEncode::::CORE:match Encode::CORE:match (opcode)
1113µs3µsEncode::::define_alias Encode::define_alias
111800ns800nsEncode::::__ANON__ Encode::__ANON__ (xsub)
0000s0sEncode::Internal::::decode Encode::Internal::decode
0000s0sEncode::UTF_EBCDIC::::decodeEncode::UTF_EBCDIC::decode
0000s0sEncode::UTF_EBCDIC::::encodeEncode::UTF_EBCDIC::encode
0000s0sEncode::::__ANON__[:193] Encode::__ANON__[:193]
0000s0sEncode::::__ANON__[:222] Encode::__ANON__[:222]
0000s0sEncode::::__ANON__[:256] Encode::__ANON__[:256]
0000s0sEncode::::__ANON__[:268] Encode::__ANON__[:268]
0000s0sEncode::::clone_encoding Encode::clone_encoding
0000s0sEncode::::decode_utf8 Encode::decode_utf8
0000s0sEncode::::encode_utf8 Encode::encode_utf8
0000s0sEncode::::encodings Encode::encodings
0000s0sEncode::::find_alias Encode::find_alias
0000s0sEncode::::find_mime_encoding Encode::find_mime_encoding
0000s0sEncode::::from_to Encode::from_to
0000s0sEncode::::perlio_ok Encode::perlio_ok
0000s0sEncode::::resolve_alias Encode::resolve_alias
0000s0sEncode::utf8::::cat_decode Encode::utf8::cat_decode
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1#
2# $Id: Encode.pm,v 2.97 2018/02/21 12:14:24 dankogai Exp $
3#
4package Encode;
5220µs216µs
# spent 13µs (10+3) within Encode::BEGIN@5 which was called: # once (10µs+3µs) by RBM::BEGIN@6 at line 5
use strict;
# spent 13µs making 1 call to Encode::BEGIN@5 # spent 3µs making 1 call to strict::import
6231µs265µs
# spent 36µs (6+29) within Encode::BEGIN@6 which was called: # once (6µs+29µs) by RBM::BEGIN@6 at line 6
use warnings;
# spent 36µs making 1 call to Encode::BEGIN@6 # spent 29µs making 1 call to warnings::import
72216µs2408µs
# spent 208µs (7+201) within Encode::BEGIN@7 which was called: # once (7µs+201µs) by RBM::BEGIN@6 at line 7
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
# spent 208µs making 1 call to Encode::BEGIN@7 # spent 201µs making 1 call to constant::import
8our $VERSION;
9
# spent 232µs (14+218) within Encode::BEGIN@9 which was called: # once (14µs+218µs) by RBM::BEGIN@6 at line 13
BEGIN {
1019µs13µs $VERSION = sprintf "%d.%02d", q$Revision: 2.97 $ =~ /(\d+)/g;
# spent 3µs making 1 call to Encode::CORE:match
111200ns require XSLoader;
121222µs1215µs XSLoader::load( __PACKAGE__, $VERSION );
# spent 215µs making 1 call to XSLoader::load
13132µs1232µs}
# spent 232µs making 1 call to Encode::BEGIN@9
14
153146µs356µs
# spent 34µs (12+22) within Encode::BEGIN@15 which was called: # once (12µs+22µs) by RBM::BEGIN@6 at line 15
use Exporter 5.57 'import';
# spent 34µs making 1 call to Encode::BEGIN@15 # spent 16µs making 1 call to UNIVERSAL::VERSION # spent 6µs making 1 call to Exporter::import
16
1711µsour @CARP_NOT = qw(Encode::Encoder);
18
19# Public, encouraged API is exported by default
20
2112µsour @EXPORT = qw(
22 decode decode_utf8 encode encode_utf8 str2bytes bytes2str
23 encodings find_encoding find_mime_encoding clone_encoding
24);
2512µsour @FB_FLAGS = qw(
26 DIE_ON_ERR WARN_ON_ERR RETURN_ON_ERR LEAVE_SRC
27 PERLQQ HTMLCREF XMLCREF STOP_AT_PARTIAL
28);
2912µsour @FB_CONSTS = qw(
30 FB_DEFAULT FB_CROAK FB_QUIET FB_WARN
31 FB_PERLQQ FB_HTMLCREF FB_XMLCREF
32);
3313µsour @EXPORT_OK = (
34 qw(
35 _utf8_off _utf8_on define_encoding from_to is_16bit is_8bit
36 is_utf8 perlio_ok resolve_alias utf8_downgrade utf8_upgrade
37 ),
38 @FB_FLAGS, @FB_CONSTS,
39);
40
4117µsour %EXPORT_TAGS = (
42 all => [ @EXPORT, @EXPORT_OK ],
43 default => [ @EXPORT ],
44 fallbacks => [ @FB_CONSTS ],
45 fallback_all => [ @FB_CONSTS, @FB_FLAGS ],
46);
47
48# Documentation moved after __END__ for speed - NI-S
49
501300nsour $ON_EBCDIC = ( ord("A") == 193 );
51
52298µs12.16ms
# spent 2.16ms (1.74+421µs) within Encode::BEGIN@52 which was called: # once (1.74ms+421µs) by RBM::BEGIN@6 at line 52
use Encode::Alias ();
# spent 2.16ms making 1 call to Encode::BEGIN@52
532107µs2519µs
# spent 518µs (484+34) within Encode::BEGIN@53 which was called: # once (484µs+34µs) by RBM::BEGIN@6 at line 53
use Encode::MIME::Name;
# spent 518µs making 1 call to Encode::BEGIN@53 # spent 800ns making 1 call to Encode::__ANON__
54
5521.90ms25.11ms
# spent 5.08ms (2.30+2.77) within Encode::BEGIN@55 which was called: # once (2.30ms+2.77ms) by RBM::BEGIN@6 at line 55
use Storable;
# spent 5.08ms making 1 call to Encode::BEGIN@55 # spent 36µs making 1 call to Exporter::import
56
57# Make a %Encoding package variable to allow a certain amount of cheating
58our %Encoding;
59our %ExtModule;
601102µsrequire Encode::Config;
61# See
62# https://bugzilla.redhat.com/show_bug.cgi?id=435505#c2
63# to find why sig handlers inside eval{} are disabled.
641200nseval {
6512µs local $SIG{__DIE__};
661800ns local $SIG{__WARN__};
6711µs local @INC = @INC;
681300ns pop @INC if $INC[-1] eq '.';
69139µs require Encode::ConfigLocal;
70};
71
72sub encodings {
73 my %enc;
74 my $arg = $_[1] || '';
75 if ( $arg eq ":all" ) {
76 %enc = ( %Encoding, %ExtModule );
77 }
78 else {
79 %enc = %Encoding;
80 for my $mod ( map { m/::/ ? $_ : "Encode::$_" } @_ ) {
81 DEBUG and warn $mod;
82 for my $enc ( keys %ExtModule ) {
83 $ExtModule{$enc} eq $mod and $enc{$enc} = $mod;
84 }
85 }
86 }
87 return sort { lc $a cmp lc $b }
88 grep { !/^(?:Internal|Unicode|Guess)$/o } keys %enc;
89}
90
91sub perlio_ok {
92 my $obj = ref( $_[0] ) ? $_[0] : find_encoding( $_[0] );
93 $obj->can("perlio_ok") and return $obj->perlio_ok();
94 return 0; # safety net
95}
96
97
# spent 49µs (41+8) within Encode::define_encoding which was called 8 times, avg 6µs/call: # 5 times (24µs+0s) by Encode::onBOOT at line 301, avg 5µs/call # 2 times (7µs+0s) by RBM::BEGIN@6 at line 361, avg 3µs/call # once (10µs+8µs) by RBM::BEGIN@6 at line 336
sub define_encoding {
9881µs my $obj = shift;
9982µs my $name = shift;
10084µs $Encoding{$name} = $obj;
10183µs my $lc = lc($name);
10284µs13µs define_alias( $lc => $obj ) unless $lc eq $name;
# spent 3µs making 1 call to Encode::define_alias
10383µs while (@_) {
104 my $alias = shift;
105 define_alias( $alias, $obj );
106 }
10782µs my $class = ref($obj);
10886µs push @Encode::CARP_NOT, $class unless grep { $_ eq $class } @Encode::CARP_NOT;
10985µs push @Encode::Encoding::CARP_NOT, $class unless grep { $_ eq $class } @Encode::Encoding::CARP_NOT;
110815µs return $obj;
111}
112
113
# spent 83.5ms (71.1+12.4) within Encode::getEncoding which was called 5051 times, avg 17µs/call: # 5051 times (71.1ms+12.4ms) by Encode::find_encoding at line 152, avg 17µs/call
sub getEncoding {
11450514.58ms my ( $class, $name, $skip_external ) = @_;
115
11650513.12ms defined($name) or return;
117
118505145.2ms505112.4ms $name =~ s/\s+//g; # https://rt.cpan.org/Ticket/Display.html?id=65796
# spent 12.4ms making 5051 calls to Encode::CORE:subst, avg 2µs/call
119
12050513.28ms ref($name) && $name->can('renew') and return $name;
121505160.6ms exists $Encoding{$name} and return $Encoding{$name};
122 my $lc = lc $name;
123 exists $Encoding{$lc} and return $Encoding{$lc};
124
125 my $oc = $class->find_alias($name);
126 defined($oc) and return $oc;
127 $lc ne $name and $oc = $class->find_alias($lc);
128 defined($oc) and return $oc;
129
130 unless ($skip_external) {
131 if ( my $mod = $ExtModule{$name} || $ExtModule{$lc} ) {
132 $mod =~ s,::,/,g;
133 $mod .= '.pm';
134 eval { require $mod; };
135 exists $Encoding{$name} and return $Encoding{$name};
136 }
137 }
138 return;
139}
140
141# HACK: These two functions must be defined in Encode and because of
142# cyclic dependency between Encode and Encode::Alias, Exporter does not work
143sub find_alias {
144 goto &Encode::Alias::find_alias;
145}
146
# spent 3µs within Encode::define_alias which was called: # once (3µs+0s) by Encode::define_encoding at line 102
sub define_alias {
14715µs16µs goto &Encode::Alias::define_alias;
# spent 6µs making 1 call to Encode::Alias::define_alias
148}
149
150
# spent 174ms (90.1+83.5) within Encode::find_encoding which was called 5051 times, avg 34µs/call: # 4038 times (76.8ms+68.5ms) by Encode::encode at line 182, avg 36µs/call # 1013 times (13.4ms+15.0ms) by Encode::decode at line 211, avg 28µs/call
sub find_encoding($;$) {
15150514.21ms my ( $name, $skip_external ) = @_;
152505172.3ms505183.5ms return __PACKAGE__->getEncoding( $name, $skip_external );
# spent 83.5ms making 5051 calls to Encode::getEncoding, avg 17µs/call
153}
154
155sub find_mime_encoding($;$) {
156 my ( $mime_name, $skip_external ) = @_;
157 my $name = Encode::MIME::Name::get_encode_name( $mime_name );
158 return find_encoding( $name, $skip_external );
159}
160
161sub resolve_alias($) {
162 my $obj = find_encoding(shift);
163 defined $obj and return $obj->name;
164 return;
165}
166
167sub clone_encoding($) {
168 my $obj = find_encoding(shift);
169 ref $obj or return;
170 return Storable::dclone($obj);
171}
172
173
# spent 307ms (138+168) within Encode::encode which was called 4038 times, avg 76µs/call: # 4038 times (138ms+168ms) by RBM::__ANON__[rbm/lib/RBM.pm:655] at line 654 of /root/tor-browser-build/rbm/lib/RBM.pm, avg 76µs/call
sub encode($$;$) {
17440387.93ms my ( $name, $string, $check ) = @_;
17540381.94ms return undef unless defined $string;
176403817.3ms $string .= ''; # stringify;
17740383.38ms $check ||= 0;
17840381.89ms unless ( defined $name ) {
179 require Carp;
180 Carp::croak("Encoding name should not be undef");
181 }
182403813.9ms4038145ms my $enc = find_encoding($name);
# spent 145ms making 4038 calls to Encode::find_encoding, avg 36µs/call
18340382.80ms unless ( defined $enc ) {
184 require Carp;
185 Carp::croak("Unknown encoding '$name'");
186 }
187 # For Unicode, warnings need to be caught and re-issued at this level
188 # so that callers can disable utf8 warnings lexically.
18940382.03ms my $octets;
19040387.98ms if ( ref($enc) eq 'Encode::Unicode' ) {
191 my $warn = '';
192 {
193 local $SIG{__WARN__} = sub { $warn = shift };
194 $octets = $enc->encode( $string, $check );
195 }
196 warnings::warnif('utf8', $warn) if length $warn;
197 }
198 else {
199403860.5ms403823.0ms $octets = $enc->encode( $string, $check );
# spent 23.0ms making 4038 calls to Encode::utf8::encode, avg 6µs/call
200 }
20140382.51ms $_[1] = $string if $check and !ref $check and !( $check & LEAVE_SRC );
202403830.4ms return $octets;
203}
20411µs*str2bytes = \&encode;
205
206
# spent 63.6ms (21.8+41.8) within Encode::decode which was called 1013 times, avg 63µs/call: # 1013 times (21.8ms+41.8ms) by Template::Provider::_decode_unicode at line 1114 of Template/Provider.pm, avg 63µs/call
sub decode($$;$) {
20710131.45ms my ( $name, $octets, $check ) = @_;
2081013747µs return undef unless defined $octets;
20910131.78ms $octets .= '';
2101013785µs $check ||= 0;
21110133.84ms101328.4ms my $enc = find_encoding($name);
# spent 28.4ms making 1013 calls to Encode::find_encoding, avg 28µs/call
2121013807µs unless ( defined $enc ) {
213 require Carp;
214 Carp::croak("Unknown encoding '$name'");
215 }
216 # For Unicode, warnings need to be caught and re-issued at this level
217 # so that callers can disable utf8 warnings lexically.
2181013265µs my $string;
21910133.08ms if ( ref($enc) eq 'Encode::Unicode' ) {
220 my $warn = '';
221 {
222 local $SIG{__WARN__} = sub { $warn = shift };
223 $string = $enc->decode( $octets, $check );
224 }
225 warnings::warnif('utf8', $warn) if length $warn;
226 }
227 else {
228101315.0ms202616.8ms $string = $enc->decode( $octets, $check );
# spent 13.5ms making 1013 calls to Encode::utf8::decode, avg 13µs/call # spent 3.38ms making 1013 calls to Encode::Encoding::renewed, avg 3µs/call
229 }
2301013703µs $_[1] = $octets if $check and !ref $check and !( $check & LEAVE_SRC );
23110133.00ms return $string;
232}
2331500ns*bytes2str = \&decode;
234
235sub from_to($$$;$) {
236 my ( $string, $from, $to, $check ) = @_;
237 return undef unless defined $string;
238 $check ||= 0;
239 my $f = find_encoding($from);
240 unless ( defined $f ) {
241 require Carp;
242 Carp::croak("Unknown encoding '$from'");
243 }
244 my $t = find_encoding($to);
245 unless ( defined $t ) {
246 require Carp;
247 Carp::croak("Unknown encoding '$to'");
248 }
249
250 # For Unicode, warnings need to be caught and re-issued at this level
251 # so that callers can disable utf8 warnings lexically.
252 my $uni;
253 if ( ref($f) eq 'Encode::Unicode' ) {
254 my $warn = '';
255 {
256 local $SIG{__WARN__} = sub { $warn = shift };
257 $uni = $f->decode($string);
258 }
259 warnings::warnif('utf8', $warn) if length $warn;
260 }
261 else {
262 $uni = $f->decode($string);
263 }
264
265 if ( ref($t) eq 'Encode::Unicode' ) {
266 my $warn = '';
267 {
268 local $SIG{__WARN__} = sub { $warn = shift };
269 $_[0] = $string = $t->encode( $uni, $check );
270 }
271 warnings::warnif('utf8', $warn) if length $warn;
272 }
273 else {
274 $_[0] = $string = $t->encode( $uni, $check );
275 }
276
277 return undef if ( $check && length($uni) );
278 return defined( $_[0] ) ? length($string) : undef;
279}
280
281sub encode_utf8($) {
282 my ($str) = @_;
283 return undef unless defined $str;
284 utf8::encode($str);
285 return $str;
286}
287
2881100nsmy $utf8enc;
289
290sub decode_utf8($;$) {
291 my ( $octets, $check ) = @_;
292 return undef unless defined $octets;
293 $octets .= '';
294 $check ||= 0;
295 $utf8enc ||= find_encoding('utf8');
296 my $string = $utf8enc->decode( $octets, $check );
297 $_[0] = $octets if $check and !ref $check and !( $check & LEAVE_SRC );
298 return $string;
299}
300
301129µs679µsonBOOT;
# spent 55µs making 1 call to Encode::onBOOT # spent 24µs making 5 calls to Encode::define_encoding, avg 5µs/call
302
3031400nsif ($ON_EBCDIC) {
304 package Encode::UTF_EBCDIC;
3052293µs22.40ms
# spent 1.63ms (280µs+1.35) within Encode::UTF_EBCDIC::BEGIN@305 which was called: # once (280µs+1.35ms) by RBM::BEGIN@6 at line 305
use parent 'Encode::Encoding';
# spent 1.63ms making 1 call to Encode::UTF_EBCDIC::BEGIN@305 # spent 769µs making 1 call to parent::import
306 my $obj = bless { Name => "UTF_EBCDIC" } => "Encode::UTF_EBCDIC";
307 Encode::define_encoding($obj, 'Unicode');
308 sub decode {
309 my ( undef, $str, $chk ) = @_;
310 my $res = '';
311 for ( my $i = 0 ; $i < length($str) ; $i++ ) {
312 $res .=
313 chr(
314 utf8::unicode_to_native( ord( substr( $str, $i, 1 ) ) )
315 );
316 }
317 $_[1] = '' if $chk;
318 return $res;
319 }
320 sub encode {
321 my ( undef, $str, $chk ) = @_;
322 my $res = '';
323 for ( my $i = 0 ; $i < length($str) ; $i++ ) {
324 $res .=
325 chr(
326 utf8::native_to_unicode( ord( substr( $str, $i, 1 ) ) )
327 );
328 }
329 $_[1] = '' if $chk;
330 return $res;
331 }
332} else {
333 package Encode::Internal;
334297µs235µs
# spent 21µs (6+14) within Encode::Internal::BEGIN@334 which was called: # once (6µs+14µs) by RBM::BEGIN@6 at line 334
use parent 'Encode::Encoding';
# spent 21µs making 1 call to Encode::Internal::BEGIN@334 # spent 14µs making 1 call to parent::import
33511µs my $obj = bless { Name => "Internal" } => "Encode::Internal";
3361700ns119µs Encode::define_encoding($obj, 'Unicode');
# spent 19µs making 1 call to Encode::define_encoding
337 sub decode {
338 my ( undef, $str, $chk ) = @_;
339 utf8::upgrade($str);
340 $_[1] = '' if $chk;
341 return $str;
342 }
3431700ns *encode = \&decode;
344}
345
346{
347 # https://rt.cpan.org/Public/Bug/Display.html?id=103253
348 package Encode::XS;
349230µs234µs
# spent 20µs (6+14) within Encode::XS::BEGIN@349 which was called: # once (6µs+14µs) by RBM::BEGIN@6 at line 349
use parent 'Encode::Encoding';
# spent 20µs making 1 call to Encode::XS::BEGIN@349 # spent 14µs making 1 call to parent::import
350}
351
352{
3531300ns package Encode::utf8;
354287µs230µs
# spent 19µs (8+11) within Encode::utf8::BEGIN@354 which was called: # once (8µs+11µs) by RBM::BEGIN@6 at line 354
use parent 'Encode::Encoding';
# spent 19µs making 1 call to Encode::utf8::BEGIN@354 # spent 11µs making 1 call to parent::import
35512µs my %obj = (
356 'utf8' => { Name => 'utf8' },
357 'utf-8-strict' => { Name => 'utf-8-strict', strict_utf8 => 1 }
358 );
35912µs for ( keys %obj ) {
3602800ns bless $obj{$_} => __PACKAGE__;
36122µs27µs Encode::define_encoding( $obj{$_} => $_ );
# spent 7µs making 2 calls to Encode::define_encoding, avg 3µs/call
362 }
363 sub cat_decode {
364 # ($obj, $dst, $src, $pos, $trm, $chk)
365 # currently ignores $chk
366 my ( undef, undef, undef, $pos, $trm ) = @_;
367 my ( $rdst, $rsrc, $rpos ) = \@_[ 1, 2, 3 ];
3682348µs2217µs
# spent 215µs (213+2) within Encode::utf8::BEGIN@368 which was called: # once (213µs+2µs) by RBM::BEGIN@6 at line 368
use bytes;
# spent 215µs making 1 call to Encode::utf8::BEGIN@368 # spent 2µs making 1 call to bytes::import
369 if ( ( my $npos = index( $$rsrc, $trm, $pos ) ) >= 0 ) {
370 $$rdst .=
371 substr( $$rsrc, $pos, $npos - $pos + length($trm) );
372 $$rpos = $npos + length($trm);
373 return 1;
374 }
375 $$rdst .= substr( $$rsrc, $pos );
376 $$rpos = length($$rsrc);
377 return '';
378 }
379}
380
381225µs1;
382
383__END__
 
# spent 3µs within Encode::CORE:match which was called: # once (3µs+0s) by Encode::BEGIN@9 at line 10
sub Encode::CORE:match; # opcode
# spent 12.4ms within Encode::CORE:subst which was called 5051 times, avg 2µs/call: # 5051 times (12.4ms+0s) by Encode::getEncoding at line 118, avg 2µs/call
sub Encode::CORE:subst; # opcode
# spent 800ns within Encode::__ANON__ which was called: # once (800ns+0s) by Encode::BEGIN@53 at line 53
sub Encode::__ANON__; # xsub
# spent 2.62ms within Encode::is_utf8 which was called 1013 times, avg 3µs/call: # 1013 times (2.62ms+0s) by Template::Provider::_decode_unicode at line 1095 of Template/Provider.pm, avg 3µs/call
sub Encode::is_utf8; # xsub
# spent 55µs (31+24) within Encode::onBOOT which was called: # once (31µs+24µs) by RBM::BEGIN@6 at line 301
sub Encode::onBOOT; # xsub
# spent 13.5ms (10.1+3.38) within Encode::utf8::decode which was called 1013 times, avg 13µs/call: # 1013 times (10.1ms+3.38ms) by Encode::decode at line 228, avg 13µs/call
sub Encode::utf8::decode; # xsub
# spent 23.0ms within Encode::utf8::encode which was called 4038 times, avg 6µs/call: # 4038 times (23.0ms+0s) by Encode::encode at line 199, avg 6µs/call
sub Encode::utf8::encode; # xsub