Profiling
Edward Nevill
ed at camswl.com
Wed Feb 25 06:01:23 PST 2009
>
>This one I find really interesting. Is libffi showing up in your
>profile at all? Andrew Haley and I have often wondered what
>performance impace using libffi has, and Andrew has some ideas for
>speeding up libffi if it turns out to be a bottleneck. If your
>profile is excluding libffi, it'd be really interesting to see
>what it looked like with it in.
>
>Cheers,
>Gary
Hi Gary,
The previous profiles did not include libffi because I was using the
shared library. I have redone it with a static libffi. Here are the
top 50 results. libffi accounts for 0.5% on this particular app
(Think Free Office). I also did CaffeineMark and EEMBC but the
results on those were negligible (<0.10%).
Regards,
Ed.
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
23.81 11.98 11.98 33820691 0.00 0.00 BytecodeInterpreter::run(BytecodeInterpreter*)
10.99 17.51 5.53 33987 0.00 0.00 CppInterpreter::main_loop(int, Thread*)
5.96 20.51 3.00 17775389 0.00 0.00 methodOopDesc::result_type() const
4.79 22.92 2.41 17840744 0.00 0.00 SignatureIterator::iterate_returntype()
3.90 24.88 1.96 16469679 0.00 0.00 InterpreterFrame::build(ZeroStack*, methodOopDesc*, JavaThread*)
2.48 26.13 1.25 15215340 0.00 0.00 CppInterpreter::normal_entry(methodOopDesc*, int, Thread*)
2.44 27.36 1.23 23488682 0.00 0.00 ConstantPoolCacheEntry::is_resolved(Bytecodes::Code) const
2.38 28.56 1.20 32975124 0.00 0.00 os::vm_page_size()
2.29 29.71 1.15 18024369 0.00 0.00 SignatureIterator::parse_type()
2.13 30.78 1.07 run_opt_entry
1.85 31.71 0.93 1254203 0.00 0.00 CppInterpreter::native_entry(methodOopDesc*, int, Thread*)
1.61 32.52 0.81 17883786 0.00 0.00 SignatureIterator::SignatureIterator(symbolHandle)
1.25 33.15 0.63 do_getfield_state1
0.85 33.58 0.43 207980 0.00 0.00 typeArrayKlass::allocate(int, Thread*)
0.81 33.99 0.41 1777040 0.00 0.00 CppInterpreter::accessor_entry(methodOopDesc*, int, Thread*)
0.81 34.40 0.41 run_opt_exit
0.70 34.75 0.35 6219137 0.00 0.00 BytecodeInterpreter::astore(int*, int, int*, int)
0.68 35.09 0.34 do_iload_state1
0.64 35.41 0.32 15293338 0.00 0.00 ThreadShadow::clear_pending_exception()
0.62 35.72 0.31 16657203 0.00 0.00 os::current_stack_pointer()
0.56 36.00 0.28 2348866 0.00 0.00 void oop_store<oopDesc*>(oopDesc**, oopDesc*)
0.56 36.28 0.28 304045 0.00 0.00 SymbolTable::lookup_only(char const*, int, unsigned int&)
0.48 36.52 0.24 17819959 0.00 0.00 ResultTypeFinder::set(int, BasicType)
0.48 36.76 0.24 4007672 0.00 0.00 SignatureInfo::do_void()
0.44 36.98 0.22 5069507 0.00 0.00 SignatureInfo::do_object(int, int)
0.44 37.20 0.22 do_aload_0_state0
0.42 37.41 0.21 do_iload_state0
0.42 37.62 0.21 ffi_call
0.40 37.82 0.20 44574 0.00 0.00 ClassFileParser::parse_method(constantPoolHandle, bool, AccessFlags*, typeArrayHandle*, typeArrayHandle*, typeArrayHandle*, Thread*)
0.36 38.00 0.18 1326820 0.00 0.00 HandleMarkCleaner::~HandleMarkCleaner()
0.32 38.16 0.16 1123793 0.00 0.00 Klass::is_subtype_of(klassOopDesc*) const
0.30 38.31 0.15 4430397 0.00 0.00 SignatureInfo::do_int()
0.30 38.46 0.15 2539725 0.00 0.00 SignatureInfo::do_bool()
0.30 38.61 0.15 do_aload_0_state1
0.30 38.76 0.15 do_goto_state0
0.30 38.91 0.15 do_iload_2_state1
0.28 39.05 0.14 43798 0.00 0.00 klassVtable::update_super_vtable(instanceKlass*, methodHandle, int, bool, Thread*)
0.26 39.18 0.13 9376 0.00 0.00 constantPoolKlass::oop_follow_contents(oopDesc*)
0.26 39.31 0.13 do_if_icmpge_state1
0.26 39.44 0.13 ffi_prep_args
0.24 39.56 0.12 128869 0.00 0.00 instanceKlass::uncached_lookup_method(symbolOopDesc*, symbolOopDesc*) const
0.24 39.68 0.12 do_aload_1_state0
0.24 39.80 0.12 do_bipush_state1
0.22 39.91 0.11 16 0.01 0.01 ContiguousSpace::prepare_for_compaction(CompactPoint*)
0.22 40.02 0.11 do_if_icmpne_state1
More information about the zero-dev
mailing list