问题标签 [qcachegrind]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
335 浏览

php - QCachegrind 没有显示任何用于 php 分析的数据,可能是配置问题

我已经安装了 xdebug 和 qCachegrind,这是 KCachegrind 的 windows 版本。但在这个界面上看不到任何分析数据。

可能是我无法正确配置它。

让我告诉你,我已经安装了 Xdebug,我正在 webgrind 上查看它。

在这里,我发布了 xdebug 的 ini 设置:

有人请在这里帮助我,以前使用过它,在互联网上找不到太多帮助。

0 投票
1 回答
1012 浏览

php - qcachegrind 错误:未知的文件格式。从 php xdebug 生成的文件

我正在尝试使用 xdebug 来分析用 php7 编写的应用程序。

我编写了一个设置以下ini设置的脚本:

正如我所料,运行脚本创建了 cachegrind 文件:

这是 cachegrind 文件的前几行,以便格式可见:

但是,当我尝试在 中打开此文件时qcachegrind,它无法打开:

在此处输入图像描述

错误消息显示:“加载错误/path/to/cachegrind/file:未知文件格式

有人知道这里发生了什么吗?我希望能够使用这样的工具来分析我的应用程序。

我还花了 30 美元尝试在MCG中打开文件,但该应用程序在打开任何这些文件后立即崩溃。

附带说明一下,该文件相当大,但没有大到我希望应用程序吓坏的程度:

0 投票
1 回答
1148 浏览

php - 如何理解 qcachegrind 结果?

我试图分析我的 php 应用程序,但无法理解 qcachegrind 中的指标。跟随截图: 在此处输入图像描述

当然是它的函数调用。但什么意味着列包括。和自我?我应该如何在这里认识到某些方法需要重构?

0 投票
0 回答
251 浏览

anaconda - 让 QCacheGrind 显示调用图

我正在尝试使用 QCacheGrind 分析一些代码。我在 Windows 10 上的 Anaconda3(64 位)下使用它。作为测试,我正在分析 Lanaro、Nguyen 和 Kasampalis 的“高级 Python 编程”中的一小段代码(第 27 页) . 我已经使用 cProfile 分析了代码,并使用 cprof2calltree 将分析输出转换为调用树。但是,当我在此文件的输出上调用 QCacheGrind 时,我在 Call Graph 选项卡中收到以下错误消息:

没有可用的图表,因为布局过程失败。
尝试运行以下命令不起作用:
'dot -Tplain'
请检查是否安装了 'dot'(软件包 GraphViz)。

我检查了已安装包的列表,GraphViz、pydot 和 pydotplus 显示为已安装。

有什么建议么?

0 投票
1 回答
138 浏览

php - 一次性算法(需要说明) 为什么空间复杂度为 O(1)?

来自en.wikipedia

单遍算法通常需要 O(n) (参见“大 O”表示法)时间和少于 O(n) 存储(通常为 O(1)),其中 n 是输入的大小。

我用 xdebug.profiler_enable=1 做了一个测试:

此代码在 qcachegrind 中的内存使用量为:33 558 608 字节,并且所有 100% 都被 range() 函数使用。
这部分在我看来没问题,因为在 onePassAlgorithm 函数中我们只有两个 int 变量。
这就是空间复杂度为 O(1) 的原因。

然后我又做了一个测试:

在 qcachegrind 中我们可以看到 onePassAlogorithm 函数只使用了 376 个字节(返回语句的大小)。我们不需要更多的顺序保存在 $seen_nums 变量中吗?那么空间复杂度又是 O(1) 吗?

qcachegrind 中第二个代码的结果

我的问题是:为什么 qcachegrind 显示我们复制整个 $inputArray 的变量 $seen_nums 不消耗内存?

或者换句话说,为什么我第二次实现这个算法的存储复杂度是O(1)?

0 投票
0 回答
11 浏览

xdebug-profiler - Windows 上的 xdebug 3 配置文件生成完整的文件路径,混淆 QCachegrind

Windows 上的 Xdebug 3.1.1 通常会使用以下文件描述创建研磨文件

换句话说,它包括源文件的完整路径(不是相对路径)。这使 QCachegrind (0.7.4) 在查找源代码时感到困惑。它似乎将研磨文件本身的路径添加到它在 cgrind 文件中找到的路径之前,从而产生类似的东西 Y:/Temp/D:\Projekten\dwh_php7\inc\utils.php,显然不是源代码的位置。将研磨文件移动到项目文件夹会生成此文件,D:/Projekten/dwh_php7/\Projekten\guerbet\dwh_php7\inc\utils.php这也无济于事。

我如何向 Xdebug 解释不要将完整的源路径存储在 cgrind 文件中?qcachegrind 的开发人员非常有帮助地指出这是它应该工作的方式。但也许这是从 *nix 到 windows 的翻译中丢失的东西。

顺便提一句。项目路径设置为 Apache 中的虚拟目录。

0 投票
0 回答
10 浏览

xdebug - 在 QCacheGrind 错误路径中找不到源代码

正如您在图像中看到的,路径错误,但我不知道如何更改它。 在此处输入图像描述