问题标签 [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.
java - 如何识别哪些代码行参与了 Java 程序的特定执行?
假设我在 IDE(本例中为 Eclipse)中有一个 Java 程序。现在假设我执行程序并在某个时候终止它或它自然结束。
有没有一种方便的方法来确定哪些行至少执行一次而哪些没有执行(例如,异常处理或未达到的条件?)
手动收集这些信息的方法是不断地进行调试并维护一组我们至少经过一次的行。但是,是否有一些工具或分析器已经这样做了?
编辑:只是为了澄清:我需要能够以编程方式访问此信息,而不必从 JUnit 测试中访问。
delphi - Delphi 的 Profiler 和内存分析工具
我最近从 Delphi 4 升级到 Delphi 2009。在 Delphi 4 中,我一直使用Primoz Gabrijelcic 的 GpProfile作为分析器,使用 Turbo Power 的 Memory Sleuth进行内存分析和泄漏调试。两者都对我很有效。但我现在需要可以与 Delphi 2009 配合使用的新工具。
Delphi 的分析/分析工具的领先者显然是 AutomatedQA 的 AQTime。他们最近甚至收购了Atanas Soyanov 的 Memproof,我认为这是一款出色的免费内存分析工具,并将其功能整合到 AQTime 中。但是 AQTime 对于单个程序员来说是非常昂贵的。它的成本实际上超过了升级到 Delphi 2009 的成本!
所以我的问题是:在您满意并推荐的当前版本的 Delphi 中,是否还有其他更便宜的选项来进行分析和内存分析,或者我应该硬着头皮为 AQTime 支付大笔费用?
附录:似乎早期的回答者表明 Delphi 中已经包含的 FastMM 管理器非常适合查找内存泄漏。
那么,源代码分析有什么好的替代方案吗?
我很好奇的是Michael Adolph 的 ProDelphi,它的成本不到 AQTime 的六分之一。你用它吗?AQTime值得付出六倍的代价吗?
附录 2:我下载了 AQTime 和 ProDelphi 的试用版。
AQTime 一开始有点不知所措,有点混乱。花了几个小时才找到连接它所需的一些技巧。
ProDelphi 非常像我习惯的 GpProfile。但它的窗口杂乱无章,不如 GpProfile 好。
对我来说,最大的区别似乎是:
ProDelphi 更改您的代码。AQTime 没有。如果出现问题,更改代码可能会损坏您的数据,但我对 GpProfile 的经验是它从未发生在我身上。AQTime 加一。
ProDelphi 要求您关闭优化。但是你想要分析的是你的程序优化,它将运行的方式。AQTime 加一。
ProDelphi 只能剖析到函数或过程。AQTime 可以细分到单独的行。AQTime 加 2。
ProDelphi 有一个免费版本,可以分析 20 个例程,其专业版的价格不到 100 美元。AQTime 是 600 美元。加 4 ProDelphi。
现在比分是4-4。你怎么看?
附录 3:Primoz Gabrijelcic 计划让 GpProfile 再次工作。请参阅他对以下一些回复的评论。他在 StackOverflow 上担任Gabr。
附录 4:似乎毕竟可能有探查器解决方案。请参阅Andre 的开源 asmprofiler,如下所述。
javascript - 如何测量函数执行所花费的时间
我需要以毫秒为单位获取执行时间。
我最初在 2008 年问过这个问题。当时接受的答案是使用
new Date().getTime()
但是,我们现在都同意使用标准performance.now()
API 更合适。因此,我正在将接受的答案更改为这个答案。
c++ - 分析使用插件的 Qt 应用程序
我有一个使用 Qt 用 C++ 编写的中型应用程序。我想对事物进行分析以查看性能最低的代码在哪里,所以我用-pg
.
但是,我的应用程序使用了许多使用 QTPlugin 机制的插件(归结为每个插件的实例对象的 dlopen 和 dlsym)。我注意到 gprof 似乎不包含插件中的函数。
是的,插件也被编译了-pg
。有什么特别的事情我必须做的吗?还是我错过了一些简单的东西?
c++ - 您使用什么工具在 Windows 上分析(本机)C++?
Window 的程序员如何分析他们的原生 C++ 代码?在 Unix/Linux 上,你有 gprof [感谢 Evan]和 valgrind(我个人用过这个,虽然它不是真正的分析器),最近我在 Mac 和 Solaris 上,这意味着我搬到了 dTrace。现在,当我过去需要在 Windows 上进行配置时,就像我以前的工作一样,我使用了 Intel 的 vtune,它很棒,但是它是商业的,而且我没有私人使用的许可证,所以我我想知道 Windows 程序员常用的标准(免费更好)工具是什么?
提前致谢
java - JBoss 监控/分析
我有一个遗留的 JBoss 4.0.4/EJB 2.1/PostgreSQL 系统,其中有无数个“事务脚本化”过程作为服务器 EJB 方法,由于糟糕的编程实践(比如每次都创建临时表, ETC)。
有什么我可以插入 JBoss(Aspect-Like)来监控远程 EJB 方法的执行,捕获开始时间和结束时间,以便以后进一步分析?这个想法是尽可能优化系统中执行最多的方法,然后研究新平台的替代方案。
performance - AQTime是如何做到的?
我一直在测试性能和内存分析器 AQTime,看看是否值得为我的 Delphi 应用程序花费大笔资金。
令我惊讶的是,它如何在不修改应用程序的源代码和不增加过多时间到调试运行。
他们如此有效地执行此操作的方式使我认为这里可能使用了一些我不知道的技术/技术,这对了解会很有用。
你知道他们使用什么样的方法来逐行捕获执行而无需更改代码?
是否还有其他分析工具也可以进行非侵入性逐行检查,如果有,它们是否使用相同的技术?
.net - 找出 .NET 对象的大小
我试图找出我的对象占用了多少内存,以查看其中有多少最终在大对象堆上(超过 85,000 字节)。
是否像为 int 添加 4、为 long 添加 8、为每个对象的任何引用类型等添加 4(或 8,如果您使用 64 位,则为 8)一样简单,或者是否有方法、属性等的开销?
winapi - 在 win32 中找出进程在内核中花费时间的原因
我正在 WinXp VmWare 会话中编译一个 vc8 C++ 项目。在 RedHat VmWare 会话中,它比 gcc3.2 慢得多,所以我正在查看任务管理器。这就是说我的编译过程中有很大一部分花费在内核中。这对我来说听起来不对。
Win32 是否有 strace 的等价物?至少可以让我大致了解正在调用哪些内核函数。可能有一些突出的东西是罪魁祸首。
optimization - 您如何分析/优化模拟工具?
过去,现在间歇性地,我使用过Easy Java Simulations和NetLogo等模拟工具。
它们是对各种数学/comp-sci 概念进行可视化建模的绝佳工具,因为“您所要做的就是编写模拟循环——图形等已为您处理。
然而,我注意到的一件事是,使用这些工具提高执行时间/建模速度是极其困难的,因为实现的核心隐藏在表面之下。
一般来说,有关于如何使用模拟器工具的很好的文档,但我没有找到任何关于提高执行时间的东西。
例如,假设您正在实施牛顿法来求根。这是一个简单的算法,但取决于
- 您使用的图形附件类型,或
- 选择了各种其他杂项选项
模拟将以不同的速度运行。
有没有办法确定模拟数据的“最佳”显示?
在使用这种工具教授有关建模/科学编程的课程的情况下,我正在考虑这一点。