问题标签 [profiling]

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

asp.net - ASP.NET 性能瓶颈之谜

一个经典的 ASP.NET 应用程序 - AppSrv + MS SQL DB。两台服务器都是 8 核、20 GB RAM 的重型服务器。在负载测试时,吞吐量达到 400 个虚拟用户(根据 LoadRunner),CPU 使用率约为 30%,数据库服务器主要处于空闲状态 - 响应时间急剧增加,达到无响应的程度。

通常的怀疑,例如 Max Pool 被耗尽和 ASP.NET 设置的 conn 限制没有问题:Max Pool 设置为 200,使用了大约 80 个 conn;conn 限制设置为 0。

我用 ANTS profiler 运行了代码,它表明线程阻塞没有显着贡献。

非常欢迎提出想法!

0 投票
5 回答
2075 浏览

vba - 分析 Microsoft Word 的 VBA 代码

我有一些使用 VBA 来解析 word 文档并构建一些 XML 输出的遗留代码;

不用说它像狗一样奔跑,但我有兴趣分析它以查看它在哪里发生故障,也许是否有一些选项可以让它更快。

在我开始测量我的结果之前,我不想尝试任何事情,所以分析是必须的——我已经做了一些搜索,但找不到任何可以轻松完成这项工作的东西。布伦特伍德有一种工具吗?这需要修改你的代码,但它没有工作,我跑了一段时间。

任何人都知道任何简单的工作?

更新:代码库大约有 20 个文件,每个文件至少有 100 个方法 - 手动添加每个方法的开始/结束调用是不合适的 - 特别是之后将它们全部删除 - 我实际上正在考虑做某种形式正则表达式来解决这个问题,然后另一个将它们全部删除,但它有点太侵入性但可能是唯一的解决方案。我之前在这里找到了一些不错的计时代码,所以它的计时部分不是问题。

0 投票
8 回答
15583 浏览

php - 可视化分析 PHP 应用程序的内存使用情况的工具

是否有任何免费软件或商业软件可以帮助分析 PHP 应用程序的内存使用情况?我知道 xdebug 可以生成跟踪文件,通过函数调用显示内存使用情况,但如果没有图形工具,数据很难解释。

理想情况下,我希望不仅能够查看总内存使用量,还能够查看堆上的对象以及与Jprofiler类似的引用它们的对象。

0 投票
4 回答
7511 浏览

windows-mobile - 适用于 Windows CE/Mobile 的代码分析/性能分析工具

除了 Visual Studio 中的工具,您还知道哪些工具可以分析 Windows CE/Mobile 应用程序中的性能瓶颈?我正在寻找类似 AQTime for CE/Mobile 的东西,以分析编译为本机代码的 C/C++ 应用程序。

0 投票
4 回答
690 浏览

.net - 如何在我的应用程序中分析序列化开销

我的应用程序在前端和数据库之间有一个 WCF 服务层。由于我们目前托管在 IIS6 中,因此我们使用的是 SOAP over HTTP。我如何才能知道在我的应用程序中进行序列化活动所花费的实际时间是多少?

0 投票
6 回答
57017 浏览

sql-server - 如何记录和查找最昂贵的查询?

sql2k8 中的活动监视器允许我们查看最昂贵的查询。好的,这很酷,但是有没有办法可以记录此信息或通过查询分析器获取此信息?我真的不想让 Sql 管理控制台打开并查看活动监视器仪表板。

我想弄清楚哪些查询写得不好/架构设计得不好,等等。

非常感谢您的帮助!

0 投票
17 回答
33281 浏览

performance - 可以使用分析器,但为什么不直接停止程序呢?

如果某件事使单线程程序占用了 10 倍的时间,那么您可以在其上运行分析器。您也可以使用“暂停”按钮停止它,您将确切地看到它在做什么。

即使它只比应有的慢 10%,如果你停止它更多次,不久你就会看到它反复做不必要的事情。通常问题是堆栈中间某处的函数调用并不是真正需要的。这不能衡量问题,但确实可以找到问题。

编辑:反对意见主要假设您只取 1 个样本。如果您是认真的,请取 10。平均而言,任何导致某些百分比浪费(例如 40%)的代码行都会出现在该部分样本的堆栈上。瓶颈(在单线程代码中)无法隐藏。

编辑:为了说明我的意思,许多反对意见的形式是“没有足够的样本,所以你看到的可能完全是虚假的”——关于机会的模糊想法。但是,如果任何可识别的描述(不仅仅是在例程中或例程处于活动状态)在 30% 的时间内有效,那么在任何给定样本上看到它的概率是 30%。

然后假设只取了 10 个样本。问题在 10 个样本中出现的次数服从二项分布,出现 0 次的概率为 0.028。看到它 1 次的概率是 0.121。2 次,概率为 0.233,3 次为 0.267,之后下降。由于看到它少于两次的概率是 0.028 + .121 = .139,这意味着看到它两次或更多次的概率是 1 - .139 = .861。一般规则是,如果您看到可以在两个或更多样本上修复的内容,则值得修复。

在这种情况下,在 10 个样本中看到它的机会是 86%。如果你是那 14% 的人没有看到它,那就多采集一些样本,直到你看到为止。(如果样本数量增加到20个,看到两次或更多次的机会增加到99%以上。)所以它没有被精确测量,但它已经被精确地找到了,理解这一点很重要它很容易成为分析器实际上无法找到的东西,例如涉及数据状态的东西,而不是程序计数器。

0 投票
4 回答
10302 浏览

javascript - 了解 Firebug 探查器输出

我一直在尝试使用 Firebug 的分析器来更好地了解我们看到的一些 JavaScript 性能问题的根源,但我对输出有点困惑。

当我分析一些代码时,分析器会报告Profile (464.323 ms, 26,412 calls)。我怀疑 464.323 毫秒是这 26,412 次调用的执行时间的总和。

但是,当我深入研究详细结果时,我看到平均执行时间大于 464.323 毫秒的单个结果,例如,平均时间最长的结果报告了以下详细信息:

另一个结果报告:

在这两个结果之间,时间结果的总和远远超过 464.323。

那么,这些不同的数字是什么意思呢?我应该信任哪些?

0 投票
4 回答
3166 浏览

eclipse - 什么是概要分析以及如何概要分析我的 Java 程序?

我听说过很多关于剖析的事情。这是怎么回事?据我了解,这是某种性能测量,但有人可以更清楚地阐述这一点,以便新手能够掌握这个想法。此外,我将 Eclipse IDE 用于我的 Java 程序。我可以使用 Eclipse IDE 分析我的程序吗?分析时要考虑哪些因素(我的意思是最佳实践)?

0 投票
1 回答
1597 浏览

perl - 如何在 Template::Toolkit 中分析模板性能?

使用Template::Toolkit时对各种模板的性能进行基准测试的最佳方法是什么?

我想要一些能够分解处理每个块或模板文件所花费的 cpu/系统时间的东西,不包括处理其中其他模板所花费的时间。 例如, Devel::DProf对此毫无用处,因为它只是告诉我在 Template 模块的各种内部方法中花费了多少时间。