tracesrv/tracecompiler/internal/scripts/ost_metrics.pl
author hgs
Tue, 26 Oct 2010 16:20:32 +0300
changeset 62 1c2bb2fc7c87
permissions -rw-r--r--
201043
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62
hgs
parents:
diff changeset
     1
#
hgs
parents:
diff changeset
     2
# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
# All rights reserved.
hgs
parents:
diff changeset
     4
# This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
# under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
# which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
#
hgs
parents:
diff changeset
     9
# Initial Contributors:
hgs
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
#
hgs
parents:
diff changeset
    12
# Contributors:
hgs
parents:
diff changeset
    13
#
hgs
parents:
diff changeset
    14
# Description: 
hgs
parents:
diff changeset
    15
#
hgs
parents:
diff changeset
    16
#!perl -w
hgs
parents:
diff changeset
    17
# 
hgs
parents:
diff changeset
    18
# 
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#*********************************************************************
hgs
parents:
diff changeset
    21
# ost_metrics.pl
hgs
parents:
diff changeset
    22
# *********************************************************************
hgs
parents:
diff changeset
    23
#
hgs
parents:
diff changeset
    24
# VERSION     : 8      Draft         Feb-15-2010      Adrian Issott
hgs
parents:
diff changeset
    25
# REASION     : Minor update to output style and added warnings about 
hgs
parents:
diff changeset
    26
#               the tool being unsupported
hgs
parents:
diff changeset
    27
#
hgs
parents:
diff changeset
    28
# VERSION     : 7      Draft         Sep-16-2009      Adrian Issott
hgs
parents:
diff changeset
    29
# REASION     : Added support for restricting output to specific
hgs
parents:
diff changeset
    30
#               components
hgs
parents:
diff changeset
    31
#
hgs
parents:
diff changeset
    32
# VERSION     : 6      Draft         Sep-15-2009      Adrian Issott
hgs
parents:
diff changeset
    33
# REASION     : Added support for older environments with dictionaries
hgs
parents:
diff changeset
    34
#               under epoc32\include\internal\symbiantraces\dictionary
hgs
parents:
diff changeset
    35
#
hgs
parents:
diff changeset
    36
# VERSION     : 5      Draft         Sep-11-2009      Adrian Issott
hgs
parents:
diff changeset
    37
# REASION     : Added trace name listing
hgs
parents:
diff changeset
    38
#               Added counting of trace / group ID with lower case names
hgs
parents:
diff changeset
    39
#               Made the output of detailed inforamtion optional 
hgs
parents:
diff changeset
    40
#               Added support for epocroots other than \
hgs
parents:
diff changeset
    41
#               Added warning about assuming epocroot=\ when it's not set
hgs
parents:
diff changeset
    42
#               Fixed illegal division by zero issue when no components were found
hgs
parents:
diff changeset
    43
#
hgs
parents:
diff changeset
    44
# VERSION     : 4      Draft         Sep-11-2008      Esa Karvanen
hgs
parents:
diff changeset
    45
# REASION     : Skip duplicate UID's when parsing
hgs
parents:
diff changeset
    46
#
hgs
parents:
diff changeset
    47
# VERSION     : 3      Draft         May-07-2008      Esa Karvanen
hgs
parents:
diff changeset
    48
# REASION     : Changed to print amount of traces and stuff
hgs
parents:
diff changeset
    49
#
hgs
parents:
diff changeset
    50
# VERSION     : 2      Draft         May-06-2008      Esa Karvanen
hgs
parents:
diff changeset
    51
# REASION     : Changed to calculate unique groups names
hgs
parents:
diff changeset
    52
#
hgs
parents:
diff changeset
    53
# VERSION     : 1      Draft         Mar-28-2008      Teemu Piiroinen
hgs
parents:
diff changeset
    54
# REASION     : Initial version
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
use strict;
hgs
parents:
diff changeset
    57
use warnings;
hgs
parents:
diff changeset
    58
use env;
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
use Getopt::Long;
hgs
parents:
diff changeset
    61
use Pod::Usage;
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
warn "\n";
hgs
parents:
diff changeset
    64
warn "Warning: this script is not supported and the Dynamic Analysis Tools team\n";
hgs
parents:
diff changeset
    65
warn "does NOT promise to fix any bugs or add any functionality to it.\n";
hgs
parents:
diff changeset
    66
warn "\n";
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
my %options;
hgs
parents:
diff changeset
    69
GetOptions('h|help|?'         => \$options{showHelp},
hgs
parents:
diff changeset
    70
           'm|manual'         => \$options{showManual},
hgs
parents:
diff changeset
    71
           'r|restrictTo=s'   => \$options{restrictTo},
hgs
parents:
diff changeset
    72
           'c|byComponent'    => \$options{byComponent},
hgs
parents:
diff changeset
    73
           't|showTraceNames' => \$options{showTraceNames},
hgs
parents:
diff changeset
    74
           'l|lowerCaseNames' => \$options{lowerCaseNames},
hgs
parents:
diff changeset
    75
  ) or pod2usage(-Verbose => 0);
hgs
parents:
diff changeset
    76
pod2usage(-Verbose => 1) if ($options{showHelp});
hgs
parents:
diff changeset
    77
pod2usage(-Verbose => 2) if ($options{showManual});
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
$options{byComponent} = 1 if $options{showTraceNames};
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
if (defined $options{restrictTo}) {
hgs
parents:
diff changeset
    82
  eval "'' =~ /$options{restrictTo}/";
hgs
parents:
diff changeset
    83
  die "Invalid restrictTo pattern ($options{restrictTo}): $@\n" if $@;    
hgs
parents:
diff changeset
    84
} else {
hgs
parents:
diff changeset
    85
  $options{restrictTo} = '.*';
hgs
parents:
diff changeset
    86
}
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
my $component_count = 0;
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
my $group_count = 0;
hgs
parents:
diff changeset
    91
my $total_group_count = 0;
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
my $trace_count = 0;
hgs
parents:
diff changeset
    94
my $component_trace_count = 0;
hgs
parents:
diff changeset
    95
my $total_trace_count = 0;
hgs
parents:
diff changeset
    96
my @allgroups = ();
hgs
parents:
diff changeset
    97
my %hashgroups = ();
hgs
parents:
diff changeset
    98
my %uids;
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
my $lowerCaseGroupNames = 0;
hgs
parents:
diff changeset
   101
my $lowerCaseTraceNames = 0;
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
my $epocroot;
hgs
parents:
diff changeset
   104
if (not defined $ENV{EPOCROOT}) {
hgs
parents:
diff changeset
   105
	warn "Warning: EPOCROOT not set so assuming it's \\\n";
hgs
parents:
diff changeset
   106
	$epocroot = '\\';
hgs
parents:
diff changeset
   107
} else {
hgs
parents:
diff changeset
   108
	$epocroot = $ENV{EPOCROOT};
hgs
parents:
diff changeset
   109
}
hgs
parents:
diff changeset
   110
die "Expected the EPOCROOT ($epocroot) to be a directory\n" unless -d $epocroot;
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
my $ost_dictionaries_dir = $epocroot.'epoc32\ost_dictionaries';
hgs
parents:
diff changeset
   113
print "Looking for dictionaries in $ost_dictionaries_dir ...\n";
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
if (not -d $ost_dictionaries_dir) {
hgs
parents:
diff changeset
   116
   $ost_dictionaries_dir = $epocroot.'epoc32\include\internal\symbiantraces\dictionary';
hgs
parents:
diff changeset
   117
   print "Looking for dictionaries in $ost_dictionaries_dir ...\n";
hgs
parents:
diff changeset
   118
}
hgs
parents:
diff changeset
   119
die "Couldn't find the OST dictionaries directory\n" unless -d $ost_dictionaries_dir;
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
print "Found the OST dictionaries directory\n";
hgs
parents:
diff changeset
   122
print "\n";
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
my $dir_cmd = "dir $ost_dictionaries_dir\\*.xml /S 	/B 2>NUL";
hgs
parents:
diff changeset
   125
my $dir_return = qx($dir_cmd);
hgs
parents:
diff changeset
   126
my $current_group;
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
foreach my $file (split("\n", $dir_return))
hgs
parents:
diff changeset
   129
{
hgs
parents:
diff changeset
   130
	next unless $file =~ /$options{restrictTo}/i;
hgs
parents:
diff changeset
   131
	
hgs
parents:
diff changeset
   132
	# OST Autogen headers contain "_0x" in their file name
hgs
parents:
diff changeset
   133
	if ($file =~ /_0x(.+?)_/i)
hgs
parents:
diff changeset
   134
	{
hgs
parents:
diff changeset
   135
		# Skip duplicate UID
hgs
parents:
diff changeset
   136
		if (exists($uids{$1}))
hgs
parents:
diff changeset
   137
		{
hgs
parents:
diff changeset
   138
			warn "Warning: skipping duplicate UID in file " . $file . "\n";
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
		}
hgs
parents:
diff changeset
   141
		# This UID for the first time, parse the file
hgs
parents:
diff changeset
   142
		else
hgs
parents:
diff changeset
   143
		{
hgs
parents:
diff changeset
   144
			$uids{$1} = 0;
hgs
parents:
diff changeset
   145
			parseFile($file);
hgs
parents:
diff changeset
   146
		}
hgs
parents:
diff changeset
   147
	}
hgs
parents:
diff changeset
   148
	# Also calculate BTraceHooksDictionary
hgs
parents:
diff changeset
   149
	elsif ($file =~ m/(BTraceHooksDictionary\.xml)/i)
hgs
parents:
diff changeset
   150
	{
hgs
parents:
diff changeset
   151
		parseFile($file);
hgs
parents:
diff changeset
   152
	}
hgs
parents:
diff changeset
   153
}
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
# Remove duplicates from the groups list
hgs
parents:
diff changeset
   156
my %seen = ();
hgs
parents:
diff changeset
   157
my @uniq_groups = ();
hgs
parents:
diff changeset
   158
foreach my $item (@allgroups) {
hgs
parents:
diff changeset
   159
  push(@uniq_groups, $item) unless $seen{$item}++;
hgs
parents:
diff changeset
   160
}
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
### OUTPUT TOTALS ###
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
my @groupNames = sort keys %hashgroups; 
hgs
parents:
diff changeset
   167
my $uniq_groups = scalar @groupNames;
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
my $avg_groups = ($component_count > 0 ? sprintf "%.2f",($total_group_count / $component_count) : 0);
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
print "\n\n--------------TOTALS--------------\n\n";
hgs
parents:
diff changeset
   172
print "Component count: $component_count\n";
hgs
parents:
diff changeset
   173
print "Unique group count: $uniq_groups\n";
hgs
parents:
diff changeset
   174
print "Average groups per component: $avg_groups\n";
hgs
parents:
diff changeset
   175
print "Trace count: $total_trace_count\n";
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
if ($options{lowerCaseNames}) {
hgs
parents:
diff changeset
   178
	for my $groupName (@groupNames) {
hgs
parents:
diff changeset
   179
		if (uc($groupName) ne $groupName) {
hgs
parents:
diff changeset
   180
			$lowerCaseGroupNames++;
hgs
parents:
diff changeset
   181
		} 
hgs
parents:
diff changeset
   182
	
hgs
parents:
diff changeset
   183
	}
hgs
parents:
diff changeset
   184
	
hgs
parents:
diff changeset
   185
	print "\n";
hgs
parents:
diff changeset
   186
	print "Lower case Group ID names count: $lowerCaseGroupNames\n";
hgs
parents:
diff changeset
   187
	print "Lower case Trace ID names count: $lowerCaseTraceNames\n";
hgs
parents:
diff changeset
   188
}
hgs
parents:
diff changeset
   189
hgs
parents:
diff changeset
   190
hgs
parents:
diff changeset
   191
### OUTPUT GROUP ID SUMMARY ###
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
hgs
parents:
diff changeset
   194
# Generate new array where key is the amount of traces and value is the string to be printed
hgs
parents:
diff changeset
   195
my @group_lines = ();
hgs
parents:
diff changeset
   196
my $groupNo = 0;
hgs
parents:
diff changeset
   197
foreach my $key (@groupNames) {
hgs
parents:
diff changeset
   198
	my $line = "";
hgs
parents:
diff changeset
   199
	
hgs
parents:
diff changeset
   200
	# Check how many times this group can be found from all groups array
hgs
parents:
diff changeset
   201
	my $occurrences = 0;
hgs
parents:
diff changeset
   202
	foreach my $item (@allgroups) {
hgs
parents:
diff changeset
   203
		if ($item eq $key) {
hgs
parents:
diff changeset
   204
			$occurrences = $occurrences + 1;
hgs
parents:
diff changeset
   205
		}
hgs
parents:
diff changeset
   206
	}
hgs
parents:
diff changeset
   207
	
hgs
parents:
diff changeset
   208
	my $value = $hashgroups{$key};
hgs
parents:
diff changeset
   209
hgs
parents:
diff changeset
   210
	my $trace_percents = ($total_trace_count > 0 ? sprintf "%.2f",($value / $total_trace_count) * 100 : 0);	
hgs
parents:
diff changeset
   211
	my $component_percents = ($component_count > 0 ? sprintf "%.2f",($occurrences / $component_count) * 100 : 0);
hgs
parents:
diff changeset
   212
hgs
parents:
diff changeset
   213
    # Add the group name
hgs
parents:
diff changeset
   214
	my $i = 0;
hgs
parents:
diff changeset
   215
	$line .= "$key";
hgs
parents:
diff changeset
   216
    while ((length $key) + $i < 42){
hgs
parents:
diff changeset
   217
    	$line .= " ";
hgs
parents:
diff changeset
   218
    	$i = $i + 1;
hgs
parents:
diff changeset
   219
    }
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
    # Add the number of traces  
hgs
parents:
diff changeset
   222
    $i = 0;
hgs
parents:
diff changeset
   223
    $line .= "$value";
hgs
parents:
diff changeset
   224
    while ((length $value) + $i < 5){
hgs
parents:
diff changeset
   225
    	$line .= " ";
hgs
parents:
diff changeset
   226
  	  $i = $i + 1;
hgs
parents:
diff changeset
   227
    }
hgs
parents:
diff changeset
   228
hgs
parents:
diff changeset
   229
    # Add the number of traces in percents
hgs
parents:
diff changeset
   230
    $line .= "($trace_percents %)";
hgs
parents:
diff changeset
   231
    $i = 0;
hgs
parents:
diff changeset
   232
    while ((length $trace_percents) + $i < 21){
hgs
parents:
diff changeset
   233
    	$line .= " ";
hgs
parents:
diff changeset
   234
    	$i = $i + 1;
hgs
parents:
diff changeset
   235
    }
hgs
parents:
diff changeset
   236
  
hgs
parents:
diff changeset
   237
    # Add used by no. of components
hgs
parents:
diff changeset
   238
    $i = 0;
hgs
parents:
diff changeset
   239
    $line .= "$occurrences";
hgs
parents:
diff changeset
   240
    while ((length $occurrences) + $i < 3){
hgs
parents:
diff changeset
   241
    	$line .= " ";
hgs
parents:
diff changeset
   242
    	$i = $i + 1;
hgs
parents:
diff changeset
   243
    }
hgs
parents:
diff changeset
   244
hgs
parents:
diff changeset
   245
    # Add used by no. of components in percents 
hgs
parents:
diff changeset
   246
    $line .= "($component_percents %)\n";
hgs
parents:
diff changeset
   247
  
hgs
parents:
diff changeset
   248
    $group_lines[$groupNo][0] = $value;
hgs
parents:
diff changeset
   249
    $group_lines[$groupNo][1] = $line;
hgs
parents:
diff changeset
   250
    $groupNo = $groupNo + 1;
hgs
parents:
diff changeset
   251
}
hgs
parents:
diff changeset
   252
hgs
parents:
diff changeset
   253
my @sorted_group_lines = reverse sort{$a->[0] <=> $b->[0]} @group_lines;  #if the $id'th column is numerically
hgs
parents:
diff changeset
   254
hgs
parents:
diff changeset
   255
print "\n\n--------------GROUP ID SUMMARY--------------\n\n";
hgs
parents:
diff changeset
   256
print "GROUP NAME\t\t\t\tAMOUNT OF TRACES\tUSED BY NO. OF COMPONENTS\n\n";
hgs
parents:
diff changeset
   257
hgs
parents:
diff changeset
   258
foreach my $line (@sorted_group_lines) {
hgs
parents:
diff changeset
   259
	print $$line[1];
hgs
parents:
diff changeset
   260
}
hgs
parents:
diff changeset
   261
hgs
parents:
diff changeset
   262
hgs
parents:
diff changeset
   263
#######################################################################
hgs
parents:
diff changeset
   264
# Parses file
hgs
parents:
diff changeset
   265
#######################################################################
hgs
parents:
diff changeset
   266
sub parseFile
hgs
parents:
diff changeset
   267
{
hgs
parents:
diff changeset
   268
	
hgs
parents:
diff changeset
   269
	my $file = $_[0];
hgs
parents:
diff changeset
   270
	open FILE, "<$file" or die $!;
hgs
parents:
diff changeset
   271
hgs
parents:
diff changeset
   272
			foreach my $line (<FILE>)
hgs
parents:
diff changeset
   273
			{
hgs
parents:
diff changeset
   274
				if ($line =~ /<path val=\"(.+?)\"/i)
hgs
parents:
diff changeset
   275
				{
hgs
parents:
diff changeset
   276
					print "Path: $1\n" if $options{byComponent};
hgs
parents:
diff changeset
   277
				}
hgs
parents:
diff changeset
   278
hgs
parents:
diff changeset
   279
				if ($line =~ /<component id=\"-?\d+\" name=\"(.+?)\"/i)
hgs
parents:
diff changeset
   280
				{
hgs
parents:
diff changeset
   281
					print "Component: $1\n" if $options{byComponent};
hgs
parents:
diff changeset
   282
hgs
parents:
diff changeset
   283
					$component_count++;
hgs
parents:
diff changeset
   284
				}
hgs
parents:
diff changeset
   285
hgs
parents:
diff changeset
   286
				if ($line =~ /<group id=\"\d+\" name=\"(.+?)\"/i)
hgs
parents:
diff changeset
   287
				{
hgs
parents:
diff changeset
   288
					my $group = $1;
hgs
parents:
diff changeset
   289
					print "\tGroup: $group\n" if $options{byComponent};
hgs
parents:
diff changeset
   290
					push(@allgroups, $group);
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
					if (not defined $hashgroups{$group})
hgs
parents:
diff changeset
   293
					{
hgs
parents:
diff changeset
   294
						$hashgroups{$group} = 0;
hgs
parents:
diff changeset
   295
					}
hgs
parents:
diff changeset
   296
hgs
parents:
diff changeset
   297
					$group_count++;
hgs
parents:
diff changeset
   298
					$total_group_count++;
hgs
parents:
diff changeset
   299
					$current_group = $group;
hgs
parents:
diff changeset
   300
					
hgs
parents:
diff changeset
   301
					print "\tGroup trace names:\n" if $options{showTraceNames};
hgs
parents:
diff changeset
   302
				}
hgs
parents:
diff changeset
   303
hgs
parents:
diff changeset
   304
				if ($line =~ /<\/component>/i)
hgs
parents:
diff changeset
   305
				{
hgs
parents:
diff changeset
   306
					if ($options{byComponent}) {
hgs
parents:
diff changeset
   307
						print "\tGroup count: $group_count\n";
hgs
parents:
diff changeset
   308
						print "\tComponent trace count: $component_trace_count\n\n\n";
hgs
parents:
diff changeset
   309
					}
hgs
parents:
diff changeset
   310
hgs
parents:
diff changeset
   311
					$group_count = 0;
hgs
parents:
diff changeset
   312
					$component_trace_count = 0;
hgs
parents:
diff changeset
   313
				}
hgs
parents:
diff changeset
   314
				if ($line =~ /<trace data-ref=\"\d+\"(?:\s+name=\"(\w+)\")?/i)
hgs
parents:
diff changeset
   315
				{
hgs
parents:
diff changeset
   316
					if (defined $1) {
hgs
parents:
diff changeset
   317
						print "\t\t$1\n" if $options{showTraceNames};
hgs
parents:
diff changeset
   318
						if ($options{lowerCaseNames} and uc($1) ne $1) {
hgs
parents:
diff changeset
   319
							$lowerCaseTraceNames++;
hgs
parents:
diff changeset
   320
						}
hgs
parents:
diff changeset
   321
					} 
hgs
parents:
diff changeset
   322
					$trace_count++;
hgs
parents:
diff changeset
   323
					$component_trace_count++;
hgs
parents:
diff changeset
   324
					$total_trace_count++;
hgs
parents:
diff changeset
   325
				}
hgs
parents:
diff changeset
   326
hgs
parents:
diff changeset
   327
				if ($line =~ /<\/group>/i)
hgs
parents:
diff changeset
   328
				{
hgs
parents:
diff changeset
   329
					print "\tGroup trace count: $trace_count\n" if $options{byComponent};
hgs
parents:
diff changeset
   330
					$hashgroups{$current_group} = ($hashgroups{$current_group} + $trace_count);
hgs
parents:
diff changeset
   331
					$trace_count = 0;
hgs
parents:
diff changeset
   332
				}
hgs
parents:
diff changeset
   333
			}
hgs
parents:
diff changeset
   334
hgs
parents:
diff changeset
   335
			close FILE;
hgs
parents:
diff changeset
   336
}
hgs
parents:
diff changeset
   337
hgs
parents:
diff changeset
   338
warn "\n";
hgs
parents:
diff changeset
   339
warn "Warning: this script is not supported and the Dynamic Analysis Tools team\n";
hgs
parents:
diff changeset
   340
warn "does NOT promise to fix any bugs or add any functionality to it.\n";
hgs
parents:
diff changeset
   341
warn "\n";
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
__END__
hgs
parents:
diff changeset
   344
hgs
parents:
diff changeset
   345
=head1 NAME
hgs
parents:
diff changeset
   346
hgs
parents:
diff changeset
   347
ost_metrics - Prints metrics about OST usage based on the dictionaries in an EPOCROOT
hgs
parents:
diff changeset
   348
hgs
parents:
diff changeset
   349
=head1 SYNOPSIS
hgs
parents:
diff changeset
   350
hgs
parents:
diff changeset
   351
ost_metrics [options]
hgs
parents:
diff changeset
   352
hgs
parents:
diff changeset
   353
=head1 OPTIONS
hgs
parents:
diff changeset
   354
hgs
parents:
diff changeset
   355
 -h (--help)             Brief help message.
hgs
parents:
diff changeset
   356
 -m (--manual)           Full documentation.
hgs
parents:
diff changeset
   357
 -r (--restrictTo) <re>  Restrict the output to just dictionaries with names 
hgs
parents:
diff changeset
   358
                         matching the regular expression re.
hgs
parents:
diff changeset
   359
 -c (--byComponent)      Output detailed information about the trace used in each 
hgs
parents:
diff changeset
   360
                         component.
hgs
parents:
diff changeset
   361
 -t (--showTraceNames)   Output detailed information about the trace ID names used.
hgs
parents:
diff changeset
   362
                         Implies -byComponent
hgs
parents:
diff changeset
   363
 -l (--lowerCaseNames)   Count the number of lower case names in the dictionaries.
hgs
parents:
diff changeset
   364
 
hgs
parents:
diff changeset
   365
=head1 DESCRIPTION
hgs
parents:
diff changeset
   366
hgs
parents:
diff changeset
   367
This script reads in the dictionaries found under EPOCROOT\epoc32\ost_dictionaries
hgs
parents:
diff changeset
   368
and outputs the following information:
hgs
parents:
diff changeset
   369
hgs
parents:
diff changeset
   370
=over
hgs
parents:
diff changeset
   371
hgs
parents:
diff changeset
   372
=item 1 OST usage breakdown by component if --byComponent is specified
hgs
parents:
diff changeset
   373
hgs
parents:
diff changeset
   374
=item 2 OST trace ID usage by component if --showTraceNames is specified
hgs
parents:
diff changeset
   375
hgs
parents:
diff changeset
   376
=item 3 Group ID usage in the environment
hgs
parents:
diff changeset
   377
hgs
parents:
diff changeset
   378
=item 4 Total usage in the environment
hgs
parents:
diff changeset
   379
hgs
parents:
diff changeset
   380
=back
hgs
parents:
diff changeset
   381
hgs
parents:
diff changeset
   382
Note that if you don't define EPOCROOT this script assumes you mean "\". 
hgs
parents:
diff changeset
   383
hgs
parents:
diff changeset
   384
=head1 SUPPORT
hgs
parents:
diff changeset
   385
hgs
parents:
diff changeset
   386
Please note that this script is not supported and the Dynamic Analysis Tools team
hgs
parents:
diff changeset
   387
does NOT promise to fix any bugs or add any functionality to it.
hgs
parents:
diff changeset
   388
hgs
parents:
diff changeset
   389
=head1 COPYRIGHT
hgs
parents:
diff changeset
   390
hgs
parents:
diff changeset
   391
Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
hgs
parents:
diff changeset
   392
hgs
parents:
diff changeset
   393
=cut