问题标签 [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.
php - QCachegrind 没有显示任何用于 php 分析的数据,可能是配置问题
我已经安装了 xdebug 和 qCachegrind,这是 KCachegrind 的 windows 版本。但在这个界面上看不到任何分析数据。
可能是我无法正确配置它。
让我告诉你,我已经安装了 Xdebug,我正在 webgrind 上查看它。
在这里,我发布了 xdebug 的 ini 设置:
有人请在这里帮助我,以前使用过它,在互联网上找不到太多帮助。
php - qcachegrind 错误:未知的文件格式。从 php xdebug 生成的文件
我正在尝试使用 xdebug 来分析用 php7 编写的应用程序。
我编写了一个设置以下ini
设置的脚本:
正如我所料,运行脚本创建了 cachegrind 文件:
这是 cachegrind 文件的前几行,以便格式可见:
但是,当我尝试在 中打开此文件时qcachegrind
,它无法打开:
错误消息显示:“加载错误/path/to/cachegrind/file
:未知文件格式
有人知道这里发生了什么吗?我希望能够使用这样的工具来分析我的应用程序。
我还花了 30 美元尝试在MCG中打开文件,但该应用程序在打开任何这些文件后立即崩溃。
附带说明一下,该文件相当大,但没有大到我希望应用程序吓坏的程度:
anaconda - 让 QCacheGrind 显示调用图
我正在尝试使用 QCacheGrind 分析一些代码。我在 Windows 10 上的 Anaconda3(64 位)下使用它。作为测试,我正在分析 Lanaro、Nguyen 和 Kasampalis 的“高级 Python 编程”中的一小段代码(第 27 页) . 我已经使用 cProfile 分析了代码,并使用 cprof2calltree 将分析输出转换为调用树。但是,当我在此文件的输出上调用 QCacheGrind 时,我在 Call Graph 选项卡中收到以下错误消息:
没有可用的图表,因为布局过程失败。
尝试运行以下命令不起作用:
'dot -Tplain'
请检查是否安装了 'dot'(软件包 GraphViz)。
我检查了已安装包的列表,GraphViz、pydot 和 pydotplus 显示为已安装。
有什么建议么?
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 显示我们复制整个 $inputArray 的变量 $seen_nums 不消耗内存?
或者换句话说,为什么我第二次实现这个算法的存储复杂度是O(1)?
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 中的虚拟目录。