问题标签 [devel-nytprof]

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 投票
1 回答
526 浏览

perl - 如果我的代码中没有诊断,为什么 Perl 会编译 diagnostics.pm?

当我查看CGI 程序的Devel::NYTProf v4的输出时,我在报告Source Code Files 中遇到了- 按独占时间排序,然后按名称排序diagnostics.pm

诊断.pm

首先,我不明白为什么会出现在生产代码中。我深入研究了报告,发现它是由main::BEGIN@17. 反过来,这就是以下行:

所以这似乎是罪魁祸首。我拔掉了no diagnostics线路,电话就没有了,有效地节省了大约 300 毫秒的时间。

以下是perldocuse关于no关键字的说明:

有一个相应的 no 声明 unimports 使用导入的含义,即它调用 unimport Module LIST 而不是 import。它的行为与 import 对 VERSION、省略或空 LIST 或未找到 unimport 方法的行为一样。

所以这是我的实际问题:我是否正确假设如果我调用no diagnostics,它实际上是在unimported 之前加载的?

调用no diagnostics类似于这段代码吗?

因此,仅取消导入从未导入的东西是不是一个坏主意,因为这实际上首先加载了它?

0 投票
2 回答
726 浏览

perl - 在 fork/execs 的程序上使用 Devel::NYTProf

首先,我export PERL5OPT=-d:NYTProf从命令行开始,以便我的调试选项将被子进程继承。然后我启动我的 Perl 程序contactd。它 fork 成为一个守护进程,然后 fork/execs 另一个 Perl 程序table_manager的九个实例。(exec 看起来像exec /path/to/perl /path/to/table_manager.)此时我可以看到 10 或 11 个名为nytprof.out 的新文件。nnnn ; 正如预期的那样,到目前为止已经分叉的每个进程都有一个。

客户端连接到被联系的哪个 fork/execs slave 后者又连接到九个表管理器并接受来自客户端的请求并将它们传递给九个表管理器。

运行典型的客户端连接后,我关闭了所有服务器进程。我运行nytprofmerge来合并各种nytprof.out。nnnn文件到nytprof-merged.out中,然后运行nytprofhtml -f nytprof-merged.out --open​​.

当 HTML 报告打开时,我看到除了contactd 之外没有提及任何内容。最上面的子程序主要是 BEGIN 块、importAUTOLOAD ... 早期执行的东西。

这让我认为 NYTPROF正在经历一个分叉(基于多个 nytprof.out 文件),但由于某种原因没有继续分析exec的 Perl 程序。

我在 MacOSX 10.8.2 中运行 perl 5.16.1 和最新的 Devel::NYTProf。

关于我没有做什么的任何建议?

0 投票
1 回答
344 浏览

perl - Perl 的 NYTProf 分析器

这个问题是关于Devel::NYTProf分析器的。

我从分析器收到的输出是一条简单的行,例如:

输出:

所以我的问题是:

  1. 这3个语句如何?
  2. sub .. 中的时间代表什么?
  3. 这是否代表将此模块转换为 optree 所花费的时间,还是其他什么?
  4. 这是编译阶段时间还是运行阶段时间?

先感谢您

0 投票
2 回答
641 浏览

perl - 分析超时的 Perl CGI 脚本

我有一个 Perl CGI 应用程序有时会超时,导致它被 Apache 杀死,并将504 Gateway Time-out错误发送到浏览器。我正在尝试使用 NYTProf 分析此应用程序,但是我无法读取配置文件数据:

我正在使用sigexit=1NYTProf 选项。这是重现问题的最小 CGI 脚本:

0 投票
1 回答
679 浏览

perl - 如何阅读 NYTProf html 报告?

我对nytprofhtml生成的Devel::NYTProf报告完全感到困惑。我正在使用旧版本的 NYTProf 1.90。我知道它是非常旧的版本,但出于多种原因应该使用它。

所以这些 HTML 报告看起来像这样(查看特定的 *.pl 文件报告时):

我从未见过新版本 nytprofhtml 的报告,所以不确定它们是否相同。

在我的情况下,这条线是整个程序中最慢的部分(它不是一个小程序)。所以我的问题是如何声明这样的'};' 成为程序中最慢的部分,语句更复杂。我认为误解了 NYTProf 的报道。

如果我的问题令人困惑,只需给我这些报告中每一列的定义,这会有所帮助吗?这会有很大帮助。

特别是我对什么感兴趣Stmts。意思是。我在猜,但我不想猜!

提前致谢。

0 投票
1 回答
112 浏览

perl - 分析和不分析时的 NYTProf 执行时间

只是,想确定一下。

我有一个测量程序执行时间的小python脚本,它只是在外部程序启动之前节省时间,然后在程序结束执行后减去这个值。

在 perl 脚本上运行此脚本时,它显示执行时间为 0.49263,当使用 NYTProf 运行相同的脚本并查看由 nytprofhtml 生成的 HTML 报告时,我可以看到执行时间为 0.80784,几乎是两倍。

这个可以吗?我想分析应该会增加执行时间,但会增加多少?

0 投票
1 回答
116 浏览

perl - 在嵌入 perl 脚本的经典 asp 中执行 NYTprof

我需要分析一个运行 perl 脚本的 asp 脚本。有什么想法可以用 perl 脚本在经典 asp 中执行 NYTprof 吗?

以上是示例代码(不完整)

任何帮助,将不胜感激。

谢谢。

0 投票
1 回答
63 浏览

perl - 在 perl 中分析 IIS 网站

我正在尝试在 Perl 中分析我必须在 IIS 中工作的网站。该网站使用Catalyst. 我正在使用Devel::NYTProf它来分析它。

默认情况下,配置文件以./nytprof.out. 我无权访问用于启动 perl 的命令行,也无权传递参数(我用来use Devel::NYTProf在我的 perl 文件中启用分析)。

但我找不到文件……你知道它在哪里吗?如何以更好的方式使用 NYTProf 来描述我的网站?

0 投票
1 回答
106 浏览

perl - 运行 nytprof perl 分析器时,“forkdepth”的值为“-2”错误消息

虽然,我将变量 N​​YTPROF 设置为“forkdepth:1”,但当我尝试 nytprofmerge 为我的分叉子代及其父代的探查器输出时,我收到一条消息:

读取 nytprof.13232.out.21321 选项“forkdepth”在 nytprof.13232.out.21321 中的值为“-2”,与之前的值“-1”不同;这意味着不一致的配置文件,因此会产生垃圾结果。

有谁知道修复或为什么会这样?

0 投票
2 回答
412 浏览

perl - 有多个进程时如何使用 NYTProf

在我的应用程序中,我有多个进程。最初,我通过运行 .pl 文件启动一个 Perl 进程,然后它又调用另外两个 .pl 脚本创建 2 个新进程。如何使用 Profile 这样的代码。我做了 NYTProf,合并结果并用 html 打开,但所有与函数相关的分析信息都丢失了。配置此类应用程序的信息会有所帮助吗?