Hi,
On Wed, 21 Nov 2007 09:39:02 +0100, Kukosa, Tomas wrote
> Hi,
> 
> sorry for my delay but I was little bit busy during last days.
> 
> What I have done:
> I have renamed and made few new functions in proto.c for more
> comfortable profiling.
>   g_strcmp() renamed to wrs_strcmp()
>   g_str_hash() from glib coppied into proto.c with new name
> wrs_str_hash()
>   some parts of proto_register_field_init() put into new functions
> wrs_check_charset() and tmp_check_assert()
> 
> See attached results:
>   presultr0.txt - all implemented in C
>   presultr1.txt - wrs_strcmp() and wrs_str_hash() implemented in
> assembler
>  Note: you will not see individual times for wrs_strcmp() and
> wrs_str_hash() in the presultr1.txt as my assembler (NASM) does nut
> support MS debug information but you can compare time of caller
> functions and total time
I'm missing something:
Slow version 15,3 seconds
3214,445  21,0     3214,445  21,0 18849296 _wrs_strcmp (asm_utils.obj)
1582,290  10,3     3159,070  20,6   582984 _g_tree_insert (libglib-2.0-0.dll)
1517,114   9,9     3154,809  20,6   586208 _g_tree_lookup (libglib-2.0-0.dll)
...
446,689   2,9      446,689   2,9    21864 _wrs_str_hash (asm_utils.obj)
Ok, make sense.
Note: _wrs_strcmp + _wrs_str_hash == 3,7 seconds
But
Fast version:
9,1 seconds. 
And
371,999   4,1      372,009   4,1   582984 _g_tree_insert (libglib-2.0-0.dll)
328,447   3,6      328,459   3,6   586208 _g_tree_lookup (libglib-2.0-0.dll)   
Why did  _g_tree_insert speed up from 1582,290 to 371,999?
Didier