本文主要是介绍dynamic profiling,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. Dynamic profling的效果,受到源代码、编译器选项以及运行的目标平台的影响。
2. Dynamic profiling所使用的方法包括:
- Event-based profiler,包括Java的JVMTI等。
- Statistical profiler,利用OS中断功能,以特定的周期对程序计数器进行取样,得到一个统计地逼近数据。优点是速度快,对实际代码的副作用比较小,缺点是不够准确。包括AMD的CodeAnalysist,Intel的VTune,以及gprof等。
- Instrumenting profiler,包括手动、自动、编译器辅助、二进制翻译、运行时instrumentation,运行时injection等。
- Interpreter instrumentation,基于解释器的instrumentation,比如JIT,因为可以控制bytecode的执行,从而可以进行数据搜集。
- Hypervisor/Simulator,利用仿真器运行程序来搜集程序的信息。
这篇关于dynamic profiling的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!