Using the profile module
>>> data = open("test.xml").read()
>>> profile.run("xmlini.fromxml(data)")
>>> profile.run("for i in range(100): xmlini.fromxml(data)")
10702 function calls in 1.155 CPU seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.013 0.013 1.154 1.154 <string>:1(?)
1 0.001 0.001 1.155 1.155 profile:0(for i in range(100): xmlini.fromxml(data))
0 0.000 0.000 profile:0(profiler)
500 0.018 0.000 0.018 0.000 xmlini.py:105(end_group)
700 0.032 0.000 0.032 0.000 xmlini.py:109(start_item)
700 0.050 0.000 0.050 0.000 xmlini.py:115(end_item)
200 0.007 0.000 0.007 0.000 xmlini.py:125(start_val)
200 0.014 0.000 0.014 0.000 xmlini.py:129(end_val)
1600 0.190 0.000 0.270 0.000 xmlini.py:134(finish_starttag)
1600 0.163 0.000 0.258 0.000 xmlini.py:143(finish_endtag)
100 0.004 0.000 0.004 0.000 xmlini.py:152(handle_proc)
100 0.007 0.000 0.007 0.000 xmlini.py:162(handle_charref)
100 0.007 0.000 0.007 0.000 xmlini.py:167(handle_entityref)
3600 0.161 0.000 0.161 0.000 xmlini.py:172(handle_data)
100 0.003 0.000 0.003 0.000 xmlini.py:182(handle_comment)
100 0.420 0.004 1.141 0.011 xmlini.py:60(fromxml)
100 0.007 0.000 0.007 0.000 xmlini.py:70(__init__)
100 0.004 0.000 0.004 0.000 xmlini.py:80(getdict)
200 0.012 0.000 0.012 0.000 xmlini.py:86(start_top)
200 0.014 0.000 0.014 0.000 xmlini.py:92(end_top)
500 0.029 0.000 0.029 0.000 xmlini.py:99(start_group)