← 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:21 2017

Filename/usr/local/lib/perl5/site_perl/mach/5.24/Razor2/Client/Engine.pm
StatementsExecuted 15 statements in 1.98ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1112.48ms2.81msRazor2::Client::Engine::::BEGIN@6Razor2::Client::Engine::BEGIN@6
1111.78ms10.4msRazor2::Client::Engine::::BEGIN@8Razor2::Client::Engine::BEGIN@8
111750µs5.17msRazor2::Client::Engine::::BEGIN@7Razor2::Client::Engine::BEGIN@7
11152µs62µsRazor2::Client::Engine::::BEGIN@3Razor2::Client::Engine::BEGIN@3
11146µs236µsRazor2::Client::Engine::::BEGIN@9Razor2::Client::Engine::BEGIN@9
11138µs160µsRazor2::Client::Engine::::BEGIN@5Razor2::Client::Engine::BEGIN@5
11129µs176µsRazor2::Client::Engine::::BEGIN@4Razor2::Client::Engine::BEGIN@4
0000s0sRazor2::Client::Engine::::compute_engineRazor2::Client::Engine::compute_engine
0000s0sRazor2::Client::Engine::::newRazor2::Client::Engine::new
0000s0sRazor2::Client::Engine::::supported_enginesRazor2::Client::Engine::supported_engines
0000s0sRazor2::Client::Engine::::vr4_signatureRazor2::Client::Engine::vr4_signature
0000s0sRazor2::Client::Engine::::vr8_signatureRazor2::Client::Engine::vr8_signature
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Razor2::Client::Engine;
2
3294µs272µs
# spent 62µs (52+10) within Razor2::Client::Engine::BEGIN@3 which was called: # once (52µs+10µs) by base::import at line 3
use strict;
# spent 62µs making 1 call to Razor2::Client::Engine::BEGIN@3 # spent 10µs making 1 call to strict::import
4282µs2322µs
# spent 176µs (29+146) within Razor2::Client::Engine::BEGIN@4 which was called: # once (29µs+146µs) by base::import at line 4
use Digest::SHA1 qw(sha1_hex);
# spent 176µs making 1 call to Razor2::Client::Engine::BEGIN@4 # spent 146µs making 1 call to Exporter::import
5280µs2283µs
# spent 160µs (38+122) within Razor2::Client::Engine::BEGIN@5 which was called: # once (38µs+122µs) by base::import at line 5
use Data::Dumper;
# spent 160µs making 1 call to Razor2::Client::Engine::BEGIN@5 # spent 122µs making 1 call to Exporter::import
62355µs12.81ms
# spent 2.81ms (2.48+332µs) within Razor2::Client::Engine::BEGIN@6 which was called: # once (2.48ms+332µs) by base::import at line 6
use Razor2::Signature::Ephemeral;
# spent 2.81ms making 1 call to Razor2::Client::Engine::BEGIN@6
72312µs15.17ms
# spent 5.17ms (750µs+4.42) within Razor2::Client::Engine::BEGIN@7 which was called: # once (750µs+4.42ms) by base::import at line 7
use Razor2::Engine::VR8;
# spent 5.17ms making 1 call to Razor2::Client::Engine::BEGIN@7
82349µs110.4ms
# spent 10.4ms (1.78+8.65) within Razor2::Client::Engine::BEGIN@8 which was called: # once (1.78ms+8.65ms) by base::import at line 8
use Razor2::Preproc::Manager;
# spent 10.4ms making 1 call to Razor2::Client::Engine::BEGIN@8
92701µs2426µs
# spent 236µs (46+190) within Razor2::Client::Engine::BEGIN@9 which was called: # once (46µs+190µs) by base::import at line 9
use Razor2::String qw(hextobase64 makesis debugobj);
# spent 236µs making 1 call to Razor2::Client::Engine::BEGIN@9 # spent 190µs making 1 call to Exporter::import
10
11# meant to be inherited
12#
13sub new {
14 return {};
15}
16
17
18sub supported_engines {
19
20 my @a = qw( 4 8 );
21
22 my $hr = {};
23 foreach (@a) { $hr->{$_} = 1; }
24
25 return wantarray ? @a : $hr;
26}
27
28
29sub compute_engine {
30 my ($self, $engine, @params) = @_;
31
32 return $self->vr4_signature(@params) if $engine == 4;
33 return $self->vr8_signature(@params) if $engine == 8;
34
35 $self->log (1,"engine $engine not supported");
36 return;
37}
38
39#
40# The following *_signature subroutines should be
41# the same as the ones on the server
42#
43
44
45#
46# VR4 Engine - Ephemereal signatures of decoded body content
47#
48sub vr4_signature {
49 my ($self, $text, $ep4) = @_;
50 my ($seed, $separator) = split /-/, $ep4, 2;
51
52 return $self->log(1,"vr4_signature: Bad ep4: $ep4") unless ($seed && $separator);
53
54 my $ehash = new Razor2::Signature::Ephemeral (seed => $seed, separator => $separator);
55 my $digest = $ehash->hexdigest($$text);
56
57 my $sig = hextobase64($digest);
58 $self->log (11,"engine 4 computing on ". length($$text) .", sig=$sig");
59 return $sig;
60}
61
62
63sub vr8_signature {
64 my ($self, $text) = @_;
65 my $vr8 = Razor2::Engine::VR8->new();
66
67 my $sigs = $vr8->signature($text);
68
69 return $sigs;
70}
71
7218µs1;