问题标签 [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 投票
8 回答
143729 浏览

optimization - 你如何测试 VBA 代码的运行时间?

VBA中是否有代码可以包装一个函数,让我知道运行时间,以便我可以比较函数的不同运行时间?

0 投票
2 回答
1612 浏览

.net - 您如何在进程中将本机映射到 IL 指令指针

在使用 .NET 框架的非托管 API 来分析 .NET 进程内进程时,是否可以查找与提供给 StackSnapshotCallback 函数的本机指令指针相关的 IL 指令指针?

可能很明显,我正在拍摄当前堆栈的快照,并希望在堆栈转储中提供文件和行号信息。托管堆栈资源管理器通过查询ISymUnmanagedMethod::GetSequencePoints. 这很好,但是序列点与偏移量相关联,到目前为止我假设这些是从方法开始的偏移量(在中间语言中)。

在对他的博客文章Profiler stack walk: Basics and beyond的后续评论中,David Broman 表示可以使用ICorDebugCode::GetILToNativeMapping. 但是,这并不理想,因为获取此接口需要从另一个调试器进程附加到我的进程。

我想避免这一步,因为我想在拍摄这些快照时继续能够从 Visual Studio 调试器中运行我的应用程序。它可以更轻松地单击输出窗口中的行号并转到有问题的代码。

该功能是可能的......您可以在托管代码内部随意吐出一个行号堆栈跟踪,唯一的问题是它是否可访问。另外,我不想使用System::Diagnostics::StackTraceorSystem::Environment::StackTrace功能,因为出于性能原因,我需要延迟堆栈的实际转储..所以节省用于稍后解析方法名称和代码位置的成本是可取的.. . 以及混合本机和托管帧的能力。

0 投票
4 回答
2694 浏览

.net - .NETCF 中的内存泄漏 - 创建动态控件?

我在 .NET CF 应用程序中遇到内存泄漏问题。

使用RPM我发现动态创建控件不会像预期的那样被垃圾收集。在 .NET 窗口窗体中运行同一段代码的行为会有所不同,并且会按我的预期处理控件。

通过 PerfMon 查看 RPM 的输出以了解进程堆计数器:
替代文字

GC 堆:
替代文字

我最好的猜测是,对面板的弱引用是由于某种未知的原因导致对象没有资格进行 GC,可以吗?

请注意:尽管Dispose()解决了示例的问题,但我无法轻松地将其合并到现有应用程序中,因为它无法明确确定对象何时不再使用。

我已经包含了一个简化版本的源代码来说明这个问题:

更新:
1. 调用 GC.Collect() 也不会导致面板被清理。
2. 在 Windows CE 4.2 设备上使用 .NET CF 2.0 SP1。

0 投票
3 回答
1478 浏览

c# - 有什么方法可以在 Sql Profiler 或类似工具中获取 .net 堆栈跟踪?

在我之前的工作中,我设计并帮助构建了一个运行时(生产)Profiler 工具,该工具在其他很酷的功能中能够为我执行的每个 SQL 语句提供 .Net 堆栈跟踪。把它想象成 steroids 上的 SQL-Server Profiler。因此,您不仅可以看到 SQL 语句和持续时间,还可以获得 SQL 执行的上下文。在开发以数据库为中心的应用程序时,我发现这些信息是天赐良机。

问题是,由于这是我以前的公司开发的,已被赛门铁克收购,虽然该工具仍然可以下载,但很不清楚许可是什么,也不是 Symnatec 销售的 SKU。

我想知道是否有人知道任何类似的工具可以为我的 SQL 语句执行提供堆栈跟踪?

alt 截图 http://img151.imageshack.us/img151/4357/profiler1jz3.gif

这仍然没有答案,ANTS et el 不这样做,考虑只是回答“否”并接受它。

0 投票
4 回答
3277 浏览

linux - 是否有任何类似的 Linux 工具可以像 Mac OS X 上的 Shark 一样工作?

Mac OS X 上的Shark是一个很好的工具,用于分析正在运行的系统上的应用程序。Linux 有没有类似的工具?

OProfile看起来可以,有人用过吗?

0 投票
3 回答
1184 浏览

python - 开源分析框架?

您是否曾经想测试并定量地显示您的应用程序作为静态构建或共享构建、剥离或非剥离、upx 或无 upx、gcc -O2 或 gcc -O3、hash 或 btree 等是否会表现得更好。如果所以这就是你的主题。调整应用程序的方法有数百种,但我们如何收集、组织、处理、可视化每个实验的结果。

几个月来,我一直在寻找一个在概念上类似于 Mozilla 的Perftastic的开源应用程序性能工程/分析框架,我可以在其中开发/构建/测试/分析数百个不同调优实验的化身。

一些要求:

平台

SUSE32 和 SUSE64

数据格式

非常灵活、紧凑、简单、层次分明。有几种可能性,包括

数据采集

灵活和可定制的插件。从应用程序中收集大量数据,包括来自 /proc、sys 时间、wall time、cpu 利用率、内存配置文件、泄漏、valgrind 日志、arena 碎片、I/O、localhost 套接字、二进制大小、打开 fds 的性能数据,等等,还有一些来自主机系统。我选择的语言是 Python,我会开发这些插件来监控和/或解析所有不同格式的数据,并将它们存储在框架的数据格式中。

标记

所有实验都将被标记,包括 GCC 版本和编译选项、平台、主机、应用程序选项、实验、构建标签等数据。

绘图

历史,比较,分层,动态和静态。

  • 应用程序构建由自定义 CI 服务器完成,该服务器连续 3 年每天多次发布新的应用程序版本。这就是为什么我们需要持续的趋势分析。当我们添加新功能、修复错误、更改构建选项时,我们希望自动收集分析数据并查看趋势。这是需要生成各种静态构建的地方。
  • 对于分析, Mozilla 动态图非常适合做比较图。在不同标签之间进行比较图表会很棒。例如比较 N 个构建版本、比较平台、比较构建选项等。
  • 我们有一个包含 3K 测试的测试套件,每个测试都会收集数据,并从测试间数据到每个测试、每个标记组,再到完整的回归套件进行分组。
  • 可能性包括RRDToolOrcaGraphite

分组分析

  • 最大限度
  • 中位数
  • 平均
  • 标准差
  • ETC

介绍

所有这些都将通过应用服务器呈现和控制,最好是 Django 或 TG。

灵感

0 投票
5 回答
377 浏览

sql-server - 为性能分析 sqlserver 2005 数据库的最佳方法是什么?

你使用什么技术?您如何找出运行时间最长的作业?有没有办法找出有问题的应用程序?

0 投票
2 回答
15990 浏览

c# - C# WPF 中的内存泄漏

我可以使用一些建议来追踪 C# 中内存泄漏的原因。我了解什么是内存泄漏,并且知道它们为什么会在 C# 中发生,但我想知道您过去使用过哪些工具/策略来解决它们?

我正在使用.NET Memory Profiler,我发现我的一个巨大的主要对象在我关闭它管理的窗口后仍留在内存中,但我不确定如何处理它的所有链接。

如果我不够清楚,只需发布​​一个问题的答案,我将编辑我的问题作为回应。谢谢!

0 投票
7 回答
3077 浏览

sharepoint - 分析 SharePoint 应用程序的最佳实践

当您正在使用的 SharePoint 应用程序的响应时间不令人满意时,您如何查明原因以及按什么顺序?到目前为止,我还没有找到任何特定于 SharePoint 部分的开源或商业分析工具,因此任何指向工具或最佳实践的指针都将受到赞赏。

PS。我知道 Web 部件的分析选项,但我正在寻找涵盖整个应用程序的东西。

0 投票
8 回答
1209 浏览

logging - 分析与日志记录有何不同?

分析与日志记录有何不同?

是否只是将分析用于性能测量以查看每个功能需要多长时间?还是我下班了?

通常,如何使用分析库?

通过分析获得哪些类型的统计信息?