[Perf] Optimize injection
commit124fe661a51fe8ee318f0ca9a75990e54090d84a
authorqixin <xqi@facebook.com>
Sat, 23 Oct 2010 19:28:39 +0000 (23 12:28 -0700)
committermacvicar <macvicar@facebook.com>
Thu, 28 Oct 2010 20:01:14 +0000 (28 13:01 -0700)
tree7f451a62b801d5fd32560712fdc8f63d9fb752d8
parent4c211d4716df4b2020262e6db8fa389184241faf
[Perf] Optimize injection

Summary:
(1) Inlines the ProfilerInjection m_info->m_profiler check, since hotprofiler
is only enabled at a very low rate.

(2) Use String pointer and ObjectData * for late static binding in
FrameInjection, to reduce the cost of destruction.

(3) Simplifies recursion and timeout checks. They don't really need an object
on stack to do any cleanup.

Test Plan:
fast_tests
slow_tests
production tests

DiffCamp Revision: 173643
Reviewed By: mwilliams
Commenters: ps
CC: ps, qixin, mwilliams, hphp-diffs@lists
Tasks:
#417275: Optimize FrameInjection-related code

Revert Plan:
OK
15 files changed:
src/compiler/expression/dynamic_function_call.cpp
src/compiler/expression/function_call.cpp
src/compiler/expression/function_call.h
src/compiler/expression/simple_function_call.cpp
src/runtime/base/builtin_functions.cpp
src/runtime/base/frame_injection.cpp
src/runtime/base/frame_injection.h
src/runtime/base/macros.h
src/runtime/base/runtime_option.cpp
src/runtime/base/thread_info.cpp
src/runtime/base/types.h
src/runtime/eval/ast/name.cpp
src/runtime/eval/runtime/eval_frame_injection.cpp
src/runtime/ext/ext_function.cpp
src/runtime/ext/ext_hotprofiler.cpp