【问题标题】:Definition of debugging, profiling and tracing调试、分析和跟踪的定义
【发布时间】:2017-06-03 04:43:54
【问题描述】:

作为系统调试的新手,我问自己这三个术语是什么意思:

  1. 调试
  2. 分析
  3. 追踪

谁能提供定义?

【问题讨论】:

    标签: debugging profiling trace


    【解决方案1】:

    嗯...当我为我的问题输入标签时,似乎堆栈溢出已经定义了标签描述中的术语。这是他们的定义,我觉得非常好:

    Remote debugging 是在附加到远程部署的应用程序的本地开发环境中运行调试会话的过程。

    Profiling 是通过运行称为分析器的分析工具来测量应用程序或系统的过程。分析工具可以关注很多方面:函数调用次数和计数、内存使用、cpu 负载和资源使用。

    Tracing 是专门使用日志来记录有关程序执行的信息。

    【讨论】:

    • 塞缪尔,你是个天才。我希望有一天塞缪尔能过来感谢你回答他的问题。
    【解决方案2】:

    除了塞缪尔的回答:

    1. 调试是在应用程序中查找错误及其原因的过程。错误可能是错误或只是一些意外行为(例如,用户抱怨他/她在使用无效日期格式时收到错误)。通常使用调试器来暂停应用程序的执行、检查变量并对其进行操作。
    2. Profiling 是一个动态分析过程,用于收集有关应用程序执行的信息。收集的信息类型取决于您的用例,例如请求的数量。分析的结果是包含收集到的信息的配置文件。配置文件的来源可以是确切的事件(参见下面的跟踪)或发生的事件样本。 因为数据是在配置文件中汇总的,所以事件发生的时间和顺序无关紧要。
    3. 跟踪“跟踪是程序内事件的日志”(Whitham)。这些事件可以按时间顺序排列。这就是为什么它们通常包含时间戳。跟踪是生成和收集这些事件的过程。用例通常是流分析。

    示例跟踪与分析:

    Trace:
    [2021-06-12T11:22:09.815479Z] [INFO] [Thread-1] Request started
    [2021-06-12T11:22:09.935612Z] [INFO] [Thread-1] Request finished
    [2021-06-12T11:22:59.344566Z] [INFO] [Thread-1] Request started
    [2021-06-12T11:22:59.425697Z] [INFO] [Thread-1] Request finished
    
    Profile: 
    2 "Request finished" Events
    2 "Request started" Events
    

    因此,如果跟踪和分析测量相同的事件,您可以从跟踪构建分析,但反之则不行。
    来源
    惠瑟姆:https://www.jwhitham.org/2016/02/profiling-versus-tracing.html
    IPM:http://ipm-hpc.sourceforge.net/profilingvstracing.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多