性能分析
编辑分析器是分析软件运行时行为的编程工具。 软件开发中存在由低效编程引发的不同问题领域。 分析器通过分析和比较正在运行的程序帮助开发人员发现问题区域。 源代码的结构和算法改进措施可以从中得出。
分析领域
编辑测量速度
分析器最常见的用途是计算和测量函数调用和迭代。 这使程序员可以找出值得优化程序的地方。 优化不经常使用的特性对程序的整体性能没有太大好处,通常会使源代码更难维护。 出于这个原因,主要关注那些被频繁调用并且在调用总和中需要大量时间的函数。
内存使用情况
另一方面是跟踪程序的内存使用情况。 探查器旨在帮助优化主内存的使用和消耗,并在必要时检测编程中阻止未使用的内存区域被释放(内存泄漏)的错误。
并发
现代分析器提供了在其生命周期中以图形方式显示并发进程(线程)的可能性(例如,作为条形图或蜘蛛图)。 这种光学处理应该有助于程序员更好地解释并发进程的运行时行为并检测由死锁引起的错误。
分析的技术方面
编辑程序本身的分析通常会影响要分析的应用程序。 通常,探查器本身会降低执行速度。 此外,在分析大型程序时,会产生非常大量的数据。 有不同的分析技术在不同程度上表现出这种影响,可能会降低分析准确性。 此外,分析器还可以确定应该分析哪些程序部分。
统计分析
借助于统计评估,程序分析并不完全受到每个程序命令的测量。 相反,运行时间是在特定的时间周期内测量的。 此过程也称为抽样。 因此,分析器以特定的时钟周期间隔干预程序流,并使用它来随机确定自上一个周期以来调用了哪些程序部分。 由此计算出统计平均值,并将其包含在分析结果中。
运行程序在统计评估过程中不发生变化。
仪器仪表
使用仪器,某些(甚至所有)程序部分(例如在运行时)由用户使用分析代码进行扩展。 这意味着中断标记(中断)或程序代码被插入到程序中,在程序运行期间向分析器发出信号,表明该部分当前正在处理中。 调用分析点之间的时间(以及与之前运行不同的存储行为)可以作为运行时值再次包含在分析结果中。
所以仪器改变程序来计算分析数据。
有不同类型的仪器:
- 通过使用计算运行时间的命令扩展源代码(例如,使用应用程序响应测量标准的编程接口)来手动检测。
- 由编译器选项扩展的程序,从而接收分析器标记。
- 通过插入标记对已编译程序进行后续修改。
- 运行时检测:存储的程序保持不变。 Profiler 标记在运行前添加到内存中。
个人资料图片
编辑程序分析的目的是应用程序的高效运行时行为。 为了比较客观,许多分析器允许保存和比较收集到的分析数据。 通过这种方式,可以根据运行时行为对程序更改进行比较和评估。 分析器通常将比较值显示为相对百分比或绝对值。 然而,由于分析器在分析过程中总是会影响运行时行为本身,因此此类比较值绝不能视为实际变化。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/366069/