← Index
NYTProf Performance Profile   « block view • line view • sub view »
For C:/lo/libo-master/solenv/bin/make_installer.pl
  Run on Mon Sep 24 00:52:54 2012
Reported on Mon Sep 24 07:34:53 2012

Filename/cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer/windows/featurecomponent.pm
StatementsExecuted 434172 statements in 24.6s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11117.3s17.9sinstaller::windows::featurecomponent::::create_featurecomponent_table_from_registry_collectorinstaller::windows::featurecomponent::create_featurecomponent_table_from_registry_collector
1117.26s8.12sinstaller::windows::featurecomponent::::create_featurecomponent_table_from_files_collectorinstaller::windows::featurecomponent::create_featurecomponent_table_from_files_collector
1589011123ms123msinstaller::windows::featurecomponent::::CORE:substinstaller::windows::featurecomponent::CORE:subst (opcode)
1113.71ms26.1sinstaller::windows::featurecomponent::::create_featurecomponent_tableinstaller::windows::featurecomponent::create_featurecomponent_table
111492µs496µsinstaller::windows::featurecomponent::::BEGIN@30installer::windows::featurecomponent::BEGIN@30
11115µs18µsinstaller::windows::featurecomponent::::BEGIN@31installer::windows::featurecomponent::BEGIN@31
11115µs17µsinstaller::windows::featurecomponent::::BEGIN@33installer::windows::featurecomponent::BEGIN@33
11114µs16µsinstaller::windows::featurecomponent::::BEGIN@32installer::windows::featurecomponent::BEGIN@32
11114µs16µsinstaller::windows::featurecomponent::::BEGIN@34installer::windows::featurecomponent::BEGIN@34
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1#*************************************************************************
2#
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# Copyright 2000, 2010 Oracle and/or its affiliates.
6#
7# OpenOffice.org - a multi-platform office productivity suite
8#
9# This file is part of OpenOffice.org.
10#
11# OpenOffice.org is free software: you can redistribute it and/or modify
12# it under the terms of the GNU Lesser General Public License version 3
13# only, as published by the Free Software Foundation.
14#
15# OpenOffice.org is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18# GNU Lesser General Public License version 3 for more details
19# (a copy is included in the LICENSE file that accompanied this code).
20#
21# You should have received a copy of the GNU Lesser General Public License
22# version 3 along with OpenOffice.org. If not, see
23# <http://www.openoffice.org/license.html>
24# for a copy of the LGPLv3 License.
25#
26#*************************************************************************
27
28package installer::windows::featurecomponent;
29
30265µs2499µs
# spent 496µs (492+4) within installer::windows::featurecomponent::BEGIN@30 which was called: # once (492µs+4µs) by installer::BEGIN@67 at line 30
use installer::converter;
# spent 496µs making 1 call to installer::windows::featurecomponent::BEGIN@30 # spent 4µs making 1 call to UNIVERSAL::import
31256µs222µs
# spent 18µs (15+3) within installer::windows::featurecomponent::BEGIN@31 which was called: # once (15µs+3µs) by installer::BEGIN@67 at line 31
use installer::exiter;
# spent 18µs making 1 call to installer::windows::featurecomponent::BEGIN@31 # spent 3µs making 1 call to UNIVERSAL::import
32259µs219µs
# spent 16µs (14+3) within installer::windows::featurecomponent::BEGIN@32 which was called: # once (14µs+3µs) by installer::BEGIN@67 at line 32
use installer::files;
# spent 16µs making 1 call to installer::windows::featurecomponent::BEGIN@32 # spent 2µs making 1 call to UNIVERSAL::import
33253µs220µs
# spent 17µs (15+3) within installer::windows::featurecomponent::BEGIN@33 which was called: # once (15µs+3µs) by installer::BEGIN@67 at line 33
use installer::globals;
# spent 17µs making 1 call to installer::windows::featurecomponent::BEGIN@33 # spent 2µs making 1 call to UNIVERSAL::import
3421.25ms219µs
# spent 16µs (14+3) within installer::windows::featurecomponent::BEGIN@34 which was called: # once (14µs+3µs) by installer::BEGIN@67 at line 34
use installer::windows::idtglobal;
# spent 16µs making 1 call to installer::windows::featurecomponent::BEGIN@34 # spent 3µs making 1 call to UNIVERSAL::import
35
36#################################################################################
37# Collecting all pairs of features and components from the files collector
38#################################################################################
39
40sub create_featurecomponent_table_from_files_collector
41
# spent 8.12s (7.26+861ms) within installer::windows::featurecomponent::create_featurecomponent_table_from_files_collector which was called: # once (7.26s+861ms) by installer::windows::featurecomponent::create_featurecomponent_table at line 159
{
4212µs my ($featurecomponenttableref, $filesref) = @_;
43
44119.6ms for ( my $i = 0; $i <= $#{$filesref}; $i++ )
45 {
461588814.6ms my $onefile = ${$filesref}[$i];
47
481588820.7ms my $filecomponent = $onefile->{'componentname'};
491588819.8ms my $filemodules = $onefile->{'modules'};
50
51158887.12ms if ( $filecomponent eq "" )
52 {
53 installer::exiter::exit_program("ERROR: No component defined for file $onefile->{'Name'}", "create_featurecomponent_table_from_files_collector");
54 }
55158885.93ms if ( $filemodules eq "" )
56 {
57 installer::exiter::exit_program("ERROR: No modules found for file $onefile->{'Name'}", "create_featurecomponent_table_from_files_collector");
58 }
59
601588856.8ms15888170ms my $filemodulesarrayref = installer::converter::convert_stringlist_into_array(\$filemodules, ",");
# spent 170ms making 15888 calls to installer::converter::convert_stringlist_into_array, avg 11µs/call
61
621588863.9ms for ( my $j = 0; $j <= $#{$filemodulesarrayref}; $j++ )
63 {
641589011.5ms my %featurecomponent = ();
65
661589010.8ms my $onemodule = ${$filemodulesarrayref}[$j];
6715890183ms15890123ms $onemodule =~ s/\s*$//;
# spent 123ms making 15890 calls to installer::windows::featurecomponent::CORE:subst, avg 8µs/call
681589020.1ms $featurecomponent{'Feature'} = $onemodule;
691589015.0ms $featurecomponent{'Component'} = $filecomponent;
70
71 # Attention: Features are renamed, because the maximum length is 38.
72 # But in the files collector ($filesref), the original names are saved.
73
741589052.8ms15890567ms installer::windows::idtglobal::shorten_feature_gid(\$featurecomponent{'Feature'});
# spent 567ms making 15890 calls to installer::windows::idtglobal::shorten_feature_gid, avg 36µs/call
75
761589020.9ms $oneline = "$featurecomponent{'Feature'}\t$featurecomponent{'Component'}\n";
77
78 # control of uniqueness
79
80158906.80s if (! grep {$_ eq $oneline} @{$featurecomponenttableref})
81 {
82 push(@{$featurecomponenttableref}, $oneline);
83 }
84 }
85 }
86}
87
88#################################################################################
89# Collecting all pairs of features and components from the registry collector
90#################################################################################
91
92sub create_featurecomponent_table_from_registry_collector
93
# spent 17.9s (17.3+659ms) within installer::windows::featurecomponent::create_featurecomponent_table_from_registry_collector which was called: # once (17.3s+659ms) by installer::windows::featurecomponent::create_featurecomponent_table at line 161
{
9412µs my ($featurecomponenttableref, $registryref) = @_;
95
96125.1ms for ( my $i = 0; $i <= $#{$registryref}; $i++ )
97 {
981780113.9ms my $oneregistry = ${$registryref}[$i];
99
1001780128.9ms my $registrycomponent = $oneregistry->{'componentname'};
1011780118.2ms my $registrymodule = $oneregistry->{'ModuleID'};
102
103178017.48ms if ( $registrycomponent eq "" )
104 {
105 installer::exiter::exit_program("ERROR: No component defined for registry $oneregistry->{'gid'}", "create_featurecomponent_table_from_registry_collector");
106 }
107178016.67ms if ( $registrymodule eq "" )
108 {
109 installer::exiter::exit_program("ERROR: No modules found for registry $oneregistry->{'gid'}", "create_featurecomponent_table_from_registry_collector");
110 }
111
1121780110.7ms my %featurecomponent = ();
113
1141780120.2ms $featurecomponent{'Feature'} = $registrymodule;
1151780115.7ms $featurecomponent{'Component'} = $registrycomponent;
116
117 # Attention: Features are renamed, because the maximum length is 38.
118 # But in the files collector ($filesref), the original names are saved.
119
1201780149.7ms17801659ms installer::windows::idtglobal::shorten_feature_gid(\$featurecomponent{'Feature'});
# spent 659ms making 17801 calls to installer::windows::idtglobal::shorten_feature_gid, avg 37µs/call
121
1221780122.2ms $oneline = "$featurecomponent{'Feature'}\t$featurecomponent{'Component'}\n";
123
124 # control of uniqueness
125
1261780117.0s if (! grep {$_ eq $oneline} @{$featurecomponenttableref})
127 {
128 push(@{$featurecomponenttableref}, $oneline);
129 }
130 }
131}
132
133#################################################################################
134# Creating the file FeatureC.idt dynamically
135# Content:
136# Feature Component
137#################################################################################
138
139sub create_featurecomponent_table
140
# spent 26.1s (3.71ms+26.1) within installer::windows::featurecomponent::create_featurecomponent_table which was called: # once (3.71ms+26.1s) by installer::run at line 1509 of /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer.pm
{
14115µs my ($filesref, $registryref, $basedir) = @_;
142
1431500ns my @featurecomponenttable = ();
1441500ns my $infoline;
145
14617µs129µs installer::windows::idtglobal::write_idt_header(\@featurecomponenttable, "featurecomponent");
# spent 29µs making 1 call to installer::windows::idtglobal::write_idt_header
147
148 # This is the first time, that features and componentes are related
149 # Problem: How about created profiles, configurationfiles, services.rdb
150 # -> simple solution: putting them all to the root module
151 # Otherwise profiles and configurationfiles cannot be created the way, they are now created
152 # -> especially a problem for the configurationfiles! # ToDo
153 # Very good: All ProfileItems belong to the root
154 # services.rdb belongs to the root anyway.
155
156 # At the moment only the files are related to components (and the files know their modules).
157 # The component for each file is written into the files collector $filesinproductlanguageresolvedarrayref
158
15917µs18.12s create_featurecomponent_table_from_files_collector(\@featurecomponenttable, $filesref);
160
16117µs117.9s create_featurecomponent_table_from_registry_collector(\@featurecomponenttable, $registryref);
162
163 # Additional components have to be added here
164
165 # Saving the file
166
16715µs my $featurecomponenttablename = $basedir . $installer::globals::separator . "FeatureC.idt";
16817µs14.07ms installer::files::save_file($featurecomponenttablename ,\@featurecomponenttable);
# spent 4.07ms making 1 call to installer::files::save_file
16916µs $infoline = "Created idt file: $featurecomponenttablename\n";
17013.64ms push(@installer::globals::logfileinfo, $infoline);
171
172}
173
17417µs1;
 
# spent 123ms within installer::windows::featurecomponent::CORE:subst which was called 15890 times, avg 8µs/call: # 15890 times (123ms+0s) by installer::windows::featurecomponent::create_featurecomponent_table_from_files_collector at line 67, avg 8µs/call
sub installer::windows::featurecomponent::CORE:subst; # opcode