Performance data for gedit



Greetings everyone.

Here is our first attempt at collecting performance data for gedit, for
a single test scenario. We have used quantify and the forte tools for
obtaining the results. 

Please go through the attached html report and give us your valuable
comments, so that we can improve towards providing more efficient and
useful performance metrics. We have put forth our first round of
findings in the report. So, please let us know if we are sailing in the
right direction.

The report details only a small portion of the voluminous data. Zipped
archive links to the complete performance data are provided in the
report, in case you require additional metrics. 

Based on your inputs, we will send across reports for more test
scenarios and components.

Regards,
Muktha and Anand
Title:
Gedit Performance Data Summary Report
(version 1.0)

1. Component Summary
 
 

Name of the Component
Gedit
QA Contact muktha narayan wipro com, anand subra wipro com
Test Setup Config Parameter Forte Setup Quantify Setup
Hardware Details Sparc Ultra2, 1 cpu Sparc Ultra250, 2 cpu
Memory 512 MB 1024 MB
Operating system Solaris 9, 64 Bit Solaris 8, 64 Bit
Build Details Source Code Location CVS
CVS Branch gnome-2-0
CVS Checkout Time Stamp Forte  Quantify 
Fri Sep 27 01:49:37 2002 Thu Oct 3 01:29:16 2002
Compiler (Version Infomation) Forte
Performance Utilities Used Quantify
    qv
Forte
    collect 
    er_print 
Other Tools/Scripts -
Total. No. Of tests Run
2

 

2. Brief Description of Tests Done to Collect Performance Data
 
 
Test No. Test synopsis
Gedit_01 Invoked Gedit, loaded a huge file (4MB) and closed Gedit once the file was loaded.

 

3. Data

Test : Gedit_01

As per the quantify data collected, the top five functions which consumed the maximum percentage of the total execution time, have been considered for the analysis.

The forte leaks data showed a total of 12 MB leak when a 4 MB file was loaded.



Function Name Caller Callees Quantify Details Forte Details
pango_default_break pango_break
g_unichar_isspace
g_unichar_break_type
g_unichar_type
g_utf8_get_char
g_utf8_strlen
Called: 181143 times
Function time: 3542764039 cycles ( 4.97% of .root.)
Function+descendants time: 5622962621 cycles ( 7.88% of .root.)
Exclusive time: 7.170 secs
Inclusive time: 12.950 secs
Attributed time: 7.170 secs
type_node_check_conformities_UorL
type_node_is_a_L
type_node_conforms_to_U
None
Called: 37408353 times
Function time: 3032325564 cycles ( 4.25% of .root.)
Function+descendants time: 3033708550 cycles ( 4.25% of .root.)
Exclusive time: 6.480 secs
Inclusive time: 6.480 secs
Attributed time: 6.480 secs
lookup_type_node_I
g_type_register_dynamic 
type_data_ref_Wm 
type_data_last_unref_Wm 
type_data_finalize_class_U 
g_type_interface_add_prerequisite 
g_type_qname 
g_type_set_qdata 
type_iface_vtable_init_Wm 
g_type_register_fundamental 
g_type_depth 
g_type_get_qdata 
g_type_add_interface_static 
check_add_interface_L 
type_data_make_W 
g_type_register_static 
check_derivation_I 
check_type_info_I 
g_type_class_peek_parent 
g_type_interfaces 
g_type_check_class_is_a 
type_class_init_Wm 
g_type_name 
g_type_interface_peek 
g_type_class_peek 
g_type_test_flags 
type_node_fundamental_info_I 
g_type_parent 
g_type_free_instance 
g_type_fundamental 
g_type_class_unref 
g_type_class_ref 
g_type_create_instance 
g_type_check_instance 
g_type_check_class_cast 
g_type_is_a 
g_type_value_table_peek 
type_check_is_value_type_U 
g_type_check_instance_cast 
g_type_check_instance_is_a 
None
Called: 84498208 times
Function time: 3001864176 cycles ( 4.21% of .root.)
Function+descendants time: 3001864176 cycles ( 4.21% of .root.)
 

 

Exclusive time: 7.530 secs
Inclusive time: 7.530 secs
Attributed time: 7.530 secs
g_utf8_validate
gtk_im_context_get_preedit_string 
gedit_document_get_short_name 
strdup_convert 
eel_format_uri_for_display_internal 
gconf_value_list_from_primitive_list 
gconf_value_from_corba_value 
open_new_dir 
strdup_len 
gtk_text_buffer_emit_insert 
_sigon 
_gtk_text_btree_insert 
pango_layout_set_text
None
Called: 334192 times
Function time: 2751271867 cycles ( 3.86% of .root.)
Function+descendants time: 2751271867 cycles ( 3.86% of .root.)
Exclusive time: 6.350 secs
Inclusive time: 6.350 secs
Attributed time: 6.350 secs
g_utf8_get_char
_sigon 
itemize_string_foreach 
gtk_text_iter_get_char 
utf8_is_latin1 
sanitize_utf8 gtk_label_set_uline_text_internal gtk_text_layout_get_line_display 
pango_default_break add_engines 
conv_ucs4 

basic_engine_shape pango_find_paragraph_boundary
None
Called: 33040874 times
Function time: 2577188472 cycles ( 3.61% of .root.)
Function+descendants time: 2577188472 cycles ( 3.61% of .root.)
Exclusive time: 6.530 secs
Inclusive time: 6.530 secs
Attributed time: 6.530 secs

 

3.1.1 Forte Collect Data
 
 
Sl. No. Data Collected Pointer to Data
1
er_print callers-callees data Gunzipped Text File (43.6 KB)
2
er_print leaks data (for the top 500 leaks)[1] Gunzipped Text File (45.7 KB)


3.1.2 Quantify Data
 
 
Sl. No. Data description Pointer to Data
1
Functions list Gunzipped Text File (43.6 KB)
2
Export File Gunzipped Text File (336 KB)
3
Annotated source files for the top five expensive functions - g_utf8_get_char (11KB)

[1] Due to huge sizes of the er_print data for leaks, the data in the attached gunzipped files have been limited to the top 500 leaks only. The complete leaks information is however available and can be provided, if required.


4. Appendix

4.1 Forte data

Data is collected using the 'collect' and 'er_print' forte profiling tools. Data can be collected using the 'collect'command. All data can be converted into performance metrics computed against functions, callers and callees of any functions, and against source and disassembly of the target program. The 'er_print' command is used to get an ASCII output of the performance metrics obtained from the 'collect' command. 

Three types of function-level metrics can be computed using the performance analysis tools:

Exclusive metrics: are calculated from events which occur inside the function itself: they exclude metrics coming from calls to other functions. 

Inclusive metrics: are collected from events which occur inside the function and any functions it calls: they include metrics coming from calls to other functions

Attributed metrics:are the parts of the inclusive metric of the selected function that are due to calls from a caller or calls to a callee.
 

Exclusive user CPU time is the amount of time spent in the function itself, in seconds

Inclusive user CPU time is the amount of time spent in the function itself and any functions it calls, in seconds
 

Callers-callees data: Prints the callers-callees panel for each of the functions, in the order in which they are sorted. The selected (middle) function is marked with an asterisk. The callers of the selected function are shown above. The functions which the selected function calls are listed below.

Leaks data: The ?Leaks? report shows what memory has been leaked while the program was running.
 
 

4.2 Quantify data

Functions list: Displays the list of function calls sorted by percentage of '.root'

Exports file: Is the ASCII version of the quantify data. Elaborates on all the callers of a particular function, the number of times the function was called, propagated time, the function descendant time and many more metrics.

Annotated source: Presents a line by line performance data using the functions source code.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]