事件追踪要解决的问题就是记录软件运行的动态轨迹,包括代码的执行轨迹和变量的变化轨迹。
事件追踪
事件追踪和日志机制的差异:
- 日志只要记录下软件中重要事件的结果;事件追踪则要记录下导致这一结果的完整过程。(因此,事件追踪机制必须能够适应频繁的数据输出和庞大的数据量;事件追踪机制通常是以二进制方式而不是文本来传输和记录的)
- 事件追踪的目标“读者”主要是开发人员,事件日志的主要对象还包括系统管理员。这一差异导致事件追踪信息通常会包含更多的技术细节,比如函数名称、变量取值等。
- 日志机制通常是始终开启的,而事件追踪机制在软件正常运行时通常是关闭的,只有在观察和分析时才会开启。
事件追踪机制的用途:
- 性能分析:分析程序的执行轨迹,寻找热点和瓶颈,确定优化目标。
- 产品期调试:在用户环境中动态开启事件追踪机制,观察执行过程,寻找故障的原因。【在无基于调试器的调试环境中进行跟踪】
- 单元测试或自动测试:记录下测试时的执行情况,为分析异常或错误提供依据。
事件追踪机制应该满足的要求:
- 高效性
- 动态性
- 灵活性
- 选择性
- 易用性