问题标签 [diagnostics]

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 回答
246 浏览

performance - 捕获和记录软件组件性能的最佳实践

我正在寻找好的(最好是即插即用的)解决方案来对我正在开发的软件进行诊断。我正在开发的软件有几个需要大量计算资源的组件,因此我们试图捕捉这些组件的性能有两个原因:1)估计所需的计算资源,从而估计运行软件的成本,以及 2)量化组件的“改进”是什么(即,如果我们修改代码并提高速度,那么它就是一种改进)。我们的应用程序由搜索引擎加上许多其他组件组成,了解搜索引擎的速度对最终用户也很重要。

似乎很难找到解决方案,因为我不确定如何正确定义我的问题。但到目前为止我发现的似乎是基本的错误记录技术。一个旨在从数据中运行统计数据(例如统计回归)的解决方案将是最好的。也许单元测试框架有内置的测试计时器,但我们需要从应用程序的实时运行中捕获数据,以应对众多不同的场景。

所以真的有两个问题:

1)这些测试有预定义的解决方案吗?

2)对这类数据进行统计回归有什么好的参考吗?假设我们捕获了脚本的执行时间和输入数据(例如查询)的大小。我们可以对数据大小进行时间回归,以了解更改数据大小对执行时间的影响。但是这些类型的回归很棘手,因为不清楚所有相关变量是什么。任何对分析性能数据的参考都会非常好,我相信对很多人都有好处!

谢谢马特

0 投票
3 回答
897 浏览

c++ - 是否可以确保复制省略?

复制省略是一种巧妙的优化技术,在某些情况下,依赖复制省略实际上比“手动”传递引用要快。

因此,让我们假设您已经确定了一个关键代码路径,您依靠编译器执行复制省略这一事实来获取代码路径以获得最佳性能。

但是现在您依赖于编译器优化。

是否有任何(编译器特定的,显然)方法来确保实际执行复制省略并在无法执行复制省略时让编译器(或其他工具)生成警告/错误?

(我正在考虑一些与 Visual C++ 很相似的东西,__forceinline如果这样标记的函数没有被编译器内联,则会生成警告。)

0 投票
1 回答
391 浏览

c# - 工具提示捕手 c#

如果我按下热键,我想创建一个可以复制工具提示(显示在当前桌面/窗口上的工具提示)的应用程序。那么如何跟踪当前桌面是否有工具提示。

0 投票
2 回答
3037 浏览

c++ - 如何将 GCC 诊断编译指示与 C++ 模板函数一起使用?

我想使用 g++ 和-Werror,所以我现在必须禁用我无法控制的第 3 方库的警告。http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html提供的解决方案效果很好,允许简单地用编译指示包装第 3 方标头的包含。不幸的是,在涉及模板的特定设置中,这不再适用于我。我创建了以下最小示例,说明这种方法没有按预期工作:

源文件 main.cpp

和头文件 hdr.hpp

使用 Makefile 编译

将产生以下编译器错误

请注意,在包含标头之后直接在 main.cpp 中显式实例化不起作用,并且在 main.cpp 中包装对模板函数的调用也不起作用。令人费解的是,放在#pragma GCC diagnostic ignored "-Wunused-parameter"main 函数前面会使编译器静音,而#pragma GCC diagnostic error "-Wunused-parameter"在文件的最后添加会导致编译器再次产生错误。如何解决这个难题?

(注意,关于这个编译指示有几十个线程,但我找不到任何涉及这种设置的人)

0 投票
10 回答
610301 浏览

iis - IIS:在哪里可以找到 IIS 日志?

我正在尝试设置来自第三方的应用程序,这需要在我的本地 IIS 中托管的支持网站。我已经完全按照他们的安装指南中的说明创建了一个网站,但是遇到了一些问题,并且想看看 IIS 日志的内容。尴尬的是,问题是我找不到日志文件!

所以我的问题是:IIS7 默认在哪里存储日志?

0 投票
1 回答
368 浏览

.net - 通过代码使用 MSBuild 构建数据库项目部署在 Debug 中比在 Release 中要长得多

我正在使用 MSBuild 引擎在 Team Server 数据库项目上运行部署:

这是在一套单元测试的设置夹具中运行的。当使用 Resharper 运行时,设置会在合理的时间内运行,但是如果我调试测试,我会在调试输出中得到大量的跟踪噪音。大多数消息都以详细级别记录。

我回顾了一些涉及的程序集,发现在静态类 Microsoft.Data.Schema.Common.Diagnostics.TSDTrace、Microsoft.Data.Schema.Utilities 中创建了一个名为“TSData”的 TraceSource。

我尝试将以下内容应用于 app.config,它已停止出现在“调试”窗口中的任何输出,但运行时间不受影响:

在日志记录类中有这个小宝石:

其中 _traceIfDebuggerAttached 始终为真。我在跳,我错过了一些东西。最终我想从代码中禁用它,但我会接受涉及应用程序配置的解决方案。

编辑

我犯了一个错误,跟踪源实际上是我在上面修改过的“TSData”。我在 app.config 中将日志级别设置为 Off,这阻止了输出出现在 Debug 输出中,但速度仍然相同。看来这个问题更具体到我正在尝试做的事情,所以我在原始问题中添加了更多细节。

0 投票
1 回答
467 浏览

c# - 使用 C# 的依赖项检查器诊断实用程序

更新:

我想使用任何 WinForms 应用程序来验证我的计算机配置和诊断实用程序,这些实用程序可以由最终用户或技术支持人员运行,以确定用户的机器是否为给定的应用程序正确配置。

我希望找到受日常启发的关于如何对给定应用程序的工作站进行故障排除的参考资料。尽管清单和指南已被证明非常有用,但所涉及的手动过程有些乏味。最好加快初始故障排除并减少周转时间。

我使用 VS 2010、C#、Win7 和 WinXP。

我只在 codeplex 中找到了 Ndiagnostics,但它是死项目

例如,我如何确定这些配置,就像 Sql Server 2008 R2 安装程序所做的那样(SQL Server 安装程序会在安装程序操作完成之前验证您的计算机配置)。

  • 检查操作系统版本、.NET Framework 的特定版本、IIS 版本、系统平台。对于 64 位平台。

  • 检查 java 版本、Visual J# 运行时版本、Visual C++ 运行时版本是否已安装

  • 检查是否需要挂起的计算机重新启动。

  • 检查计算机是否满足最低操作系统版本要求。

  • 检查运行 SQL Server 安装程序的帐户是否在计算机上具有管理权限。

  • 检查 WMI 服务是否已在计算机上启动和运行。

  • 检查计算机是否已连接到 Internet。

  • 检查计算机是否为域控制器。

  • 检查是否安装了 Windows PowerShell。

  • 检查 Visual Studio 2008 的早期版本或是否已升级到 SP1。

  • 检查现有性能计数器注册表配置单元是否一致。

  • 检查是否安装了 SqlServer 版本或 SQL Server 服务。

  • 检查 .NET:smtp 和代理配置,...

  • 检查用户是否是机器管理员,验证用户是否属于指定的组/角色等。

  • 确定特定的“URL”是否可用(可以验证网页或 Web 服务)。

  • 确定特定服务器是否可用(可以验证内网中的任何服务器)。


海关:

  • 检查特定文件夹是否存在,

  • 确定特定进程是否正在运行

  • 测试连接 sqlserver-oracle-checks 是否连接到指定数据库;-,测试电子邮件 smtp 连接等

和更多...

任何建议、代码示例、提示、示例应用程序等?

更新:Microsoft All-In-One Code Framework 中的请求
http://1code.codeplex.com/workitem/10118

好主意是 Microsoft Dynamics CRM 2011 的诊断工具,但它仅适用于 CRM
http://crmdiagtool2011.codeplex.com/

0 投票
1 回答
608 浏览

ruby - 获取 Ruby 中的顶级命名空间

我怎样才能在 Ruby 中做到这一点?:

有时对于解释性语言的诊断,对我的代码进行快速更改,将对象扔到顶级名称空间中,然后在交互式环境中将其弄乱,对我来说更快。

在 Python 中,我将其添加到我的代码中:

...然后使用命令运行文件python -i [myfilename]。知道如何访问 Ruby 中的顶级命名空间吗?

0 投票
1 回答
85 浏览

unit-testing - 将测试纳入已发布软件的指南?

在许多开源项目中,使用的测试套件通常是全面的。这样做是为了让很多很多人轻松地贡献更改,而不会在此过程中破坏太多。

我使用的一个软件是测试框架FitnNesse。FitNesse 的一件有趣的事情是测试套件是“已安装”系统的一部分。

在已发布的软件中,是否有关于要合并什么级别的测试的指南?

显然,在发布的产品中包含所有单元测试可能不是正确的做法。

这些合并测试的另一个名称可能是“诊断”。

0 投票
1 回答
381 浏览

perl - Perl,如何避免来自不直接包含的模块的诊断消息?

我收到了这个警告(在“使用诊断”之后);

在 /usr/lib/perl5/HTML/PullParser.pm 第 81 行解码实体时,解析未解码的 UTF-8 会产生垃圾。

我的程序是这样的:

我该如何摆脱它?或者我可以放心地忽略它吗?

更新: 我只是注意到使用 WWW::Mechanize->new() 的 WWW::Mechanize::GZip->new() 确实可以静默工作......所以问题来自 GZip 模块......?