MetaEditor 帮助

代码分析

代码分析

分析是一个收集应用程序功能,比如其个别片段(函数,线)执行时间的过程。MetaEditor集成代码分析的方法,允许程序员优化源代码。

性能分析既能够在交易平台的正常图表上执行,也能够在策略测试中使用历史数据。第一种情况下,程序将在实时更新的图表上启动。您可以在真实条件下检查程序的表现。而第二种情况下,程序会在可视模式下的策略测试中启动。这种方式的优势在于您无需等候来自交易服务器的真实数据。

许多程序,尤其是指标,只能在新报价进入时执行计算(OnTick,OnCalculate)。因此,为了评估性能,您必须等候新的实时报价。当使用历史数据进行分析时,您可以立即提供所需的加载并测试程序性能,即使是在市场关闭的周末也可以进行。

分析启动

要启动代码分析,打开应用程序的源代码(mq5)。在"调试"菜单或在"标准"工具栏,点击"开始分析 通过真实数据开始分析"或"Начать профилирование на исторических данных 通过历史数据开始分析"。

然后,将自动编译用于分析的特别程序版本。根据选定的分析类型,程序将在交易程序端的正常图表上或在策略测试(可视模式)中启用。

默认情况下,应用程序在EURUSD H1图表启动。要选择另一个交易品种和周期,在MetaEditor选项的"调试"标签上指定。

应用程序已经启动后,您应该用它工作一段时间以可能最大程度的使用其全部功能。允许分析器测量功能及应用线执行时间是必要的。

其次,分析可以停止通过使用 "停止分析 停止分析" 命令在"调试" 菜单或在 "标准" 工具栏。

若要获得更精确的配置结果,请从图表手动移除程序来替代使用命令"停止配置停止配置"。

查看性能分析结果

分析完成后,其结果将显示在“工具箱”窗口的特殊 "分析器"标签。查看结果有两种模式可供选择。使用快捷菜单可以在两者间切换。

"调用函数" 模式

分析结果

在此模式下,分析结果通过函数显示:

  • 函数 ― 类函数和方法名称。
  • 线 ― 函数调用的线。如果函数在应用程序的几个位置调用,其图标标记用特殊符号 扩展。点击它,会打开每次调用的数据。
  • 计数 ― 应用程序操作的整个期间的函数调用数量。
  • 时间 ― 函数执行的微秒时间和与所有函数执行时间相关的百分比值。函数执行时间是其中所有被调用的函数的执行时间总和。
  • 图解 ― 函数执行时间图解。

使用图标展示的函数类型:

  • 自定义函数 ―  自定义函数;
  • 系统函数 ― 系统函数;
  • 事件处理函数 ― 事件处理函数 (On*);
  • 类方法 ― 类方法。

除了提到的函数类型,分析器还显示:

  • 系统函数@global_initializations ― 所有的全局变量初始化的数据;
  • 系统函数@global_deinitializations ― 所有的全局变量非初始化的数据;

要查看一个文件中的函数,双击鼠标左键就可以。

分析器只显示应用程序操作期间调用的函数。

"函数线" 模式

分析结果

在此模式下,应用程序操作时的数据被表示为直线。根据应用程序函数将线分组。.

  • 函数 ― 函数名称。
  • 线 ― 线的索引,其中显示数据。要查看每个函数执行时间的数据,点击图标。 扩展
  • 计数 ― 在一个特定线中执行代码的次数。
  • 时间 ― 在特定线中,代码执行时间按微秒和百分比值。百分比值显示每条线对应的函数执行时间。函数百分比值显示对应的整个应用程序执行时间。
  • 图解 ― 执行时间图解。

要查看一条文件中的线,双击鼠标左键就可以。

快捷菜单

快捷菜单中有如下命令:

  • 打开 ― 在源代码文件移动到一条线或一个函数。也可以通过双击或按下Enter执行同样的操作。
  • 全部展开 ― 展开全部折叠函数;
  • 全部折叠 ― 折叠所有展开函数;
  • 函数线 ― 切换到查看分析结果 通过线
  • 调用函数 ― 切换到查看分析结果通过调用
  • 导出 ― 导出分析结果以Open XML (MS Office Excel), HTML (Internet Explorer) 或CSV (文本文件)格式。
  • 自动排列 ― 启用/禁用自动调整字段大小。通过按下"A"也可以完成同样操作;
  • 网格 ― 显示/隐藏网格来分开字段。通过按下"G"也可以完成同样操作。