问题标签 [dottrace]

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

performance - EF 性能:查询编译中的 ComputeHashValue()

我们目前正在尝试优化 Entity Framework 查询的性能。特别是,我们寻找减少 CPU 使用率的方法。

使用 dotTrace,我们分析了执行不同查询时消耗最多 CPU 时间的部分。请参阅下面的快照: dotTrace 调用树

这个快照来自一个相当简单的查询,但它仍然显示了最耗时的操作:GetExecutionPlan()。更深入地研究这一点,可以看出在 ComputeHashValue() 方法中使用了很多时间,该方法为表达式树中的所有节点递归调用。

这篇博文指出

实体框架将遍历表达式树中的节点并创建一个散列,该散列成为用于将其放置在查询缓存中的键。

因此,哈希值似乎仅用作查询缓存的键。由于我们在查询中使用 IEnumerable.Contains(),EF 不会对它们进行缓存(请参阅此 MSDN 文章(第 3.2 和 4.1 章)。因此,我们禁用了查询计划缓存,如下所示:

我们希望不再调用 ComputeHashValue()。但是,dotTrace 显示的调用树没有变化,性能与启用查询计划缓存时相同。

禁用查询计划缓存时仍然需要 ComputeHashValue() 是否有原因?

对于我们更复杂的查询,对 ComputeHashValue() 的所有调用会占用查询执行所需的全部 CPU 时间的 70%,因此避免这些调用(如果不需要它们)会极大地影响我们的性能。

0 投票
2 回答
1203 浏览

azure - Is it possible to remotely profile Azure Websites using DotTrace?

I have seen a few articles on using DotTrace with Azure Cloud Services, but not Azure Websites. Is it possible?

Thanks in advance.

0 投票
1 回答
115 浏览

azure - dotTrace 无法在 Windows Azure 网站 (WAWS) 上创建部署文件夹

我收到错误消息“无法创建部署文件夹”。当我尝试在 WAWS 上分析远程网站时。

所采取的行动:

  • 从 JetBrains 网站下载并安装了 dotTrace Profiler 5.5
  • 从 Nuget 下载 dotTrace.Performance.Remote 版本 5.5.0
  • 通过 Visual Studio 2013 将网站发布到 WAWS
  • 以管理员身份启动 dotTrace 应用程序
  • 连接到远程 _https://subdomain.azurwebsites.net/AgentService.asmx。见图片:http: //1drv.ms/1nF5Cyh
  • 选择 w3wp 进程并按下运行
  • 收到错误消息“无法创建部署文件夹”。见图片:http: //1drv.ms/U5h35A

我目前正在试用模式下运行 dotTrace。非常感谢 Swift 的帮助。

奥尔罕

0 投票
1 回答
163 浏览

jetbrains-ide - 连接到 RemoteAgent 时出现无法识别的 FaultException

如何解决 dotTrace Profiler 配置对话框中的以下错误消息?

我在服务器上配置并运行了 RemoteAgent,防火墙端口 9000 打开。

尝试连接它时,我指定了 IP 地址、端口和端点,然后我得到了上面的消息。就是这样......它以字母“f”结尾,我不确定它指的是什么。我检查了日志,不幸的是,这就是我得到的全部:

服务器上似乎也没有任何信息。我在事件日志中看到的所有内容如下,它记录在 RemoteAgent 启动时,但很有意义,因为它可能不希望自己被分析:

我找不到其他日志文件或工件。

其他信息:

  • 我在 Windows 8.1 上
  • dotTrace 版本是 5.5.4
  • 服务器是2012
  • 所有应用程序都以管理员权限运行

我已经能够连接到其他服务器上的其他 RemoteAgent。不知道这里缺少什么。

0 投票
2 回答
931 浏览

c# - 如何缓存来自存储库调用的数据

我正在使用 ASP.NET MVC 作为其前端客户端的多层 Web 应用程序。此 Web 应用程序的特定页面需要很长时间才能加载。大约30秒。

我下载了dotTrace并在我的应用程序上运行它(按照本教程)。我发现我的应用程序很慢的原因。

事实证明,这是因为我拥有的一种特定方法做了很多工作(需要时间),并且该方法总共被调用了 4 次。

这是来自 dotTrace 的屏幕截图,显示了上述内容:

dotTrace 截图

有问题的方法是GetTasks()。因此,为了提高 Web 应用程序的速度,我想缓存GetTasks()每个请求返回的数据。

如果我的想法是正确的,这将真正改善我遇到的速度问题。

我的问题是,我怎样才能做到这一点?我以前从来没有做过这样的事情。对于每个新请求,我如何缓存从返回的数据GetTasks(),并将其用于所有后续调用GetTasks()

0 投票
1 回答
309 浏览

azure - 分析 IIS 点跟踪需要管理权限

我正在尝试使用 dotTrace Perfomance 独立程序分析远程 Azure 网站,但是当连接到远程计算机 URL 时,我在“应用程序选项”下收到“分析 IIS 需要管理权限”错误消息,我在 Windows 7 中运行 dottrace计算机并使用“以管理员身份运行”选项。

知道问题可能是什么吗?

0 投票
1 回答
9773 浏览

java - 我们可以在 IntelliJ IDE 中测量代码性能吗

我正在使用 IntelliJ IDE 进行 Java 应用程序开发。我想知道是否有一种方法可以计算从 IntelliJ 完成特定功能所需的时间。我四处搜索,但有些人提到了 dotTrace,但我无法真正掌握,如果它可以从 IntelliJ 链接。如果可能的话,任何链接或答案都将受到高度赞赏。

谢谢

0 投票
1 回答
2245 浏览

resharper - 如何完全删除dottrace

目前,我拥有以下 JetBrains 产品的许可证:

ReSharper 8.2.0.2160

点覆盖 2.7.1.238

我最近需要使用 Dottrace,所以从 JetBrains 网站安装了最新版本。但是我发现这与其他早期产品不兼容,因此将其卸载。

除了它没有正确卸载。我仍然看到 dottrace 菜单,它似乎仍然可以正常工作,并且 ReSharper 仍然损坏。我已经尝试完全卸载然后重新安装 Visual Studio(连同 resharper 和 dotcover),但这仍然没有改善任何东西。我仍然看到 Dottrace 菜单并且 ReSharper 仍然损坏。

我已经尝试过 JetBrains 支持论坛 ( https://devnet.jetbrains.com/message/5536694#5536694 ),但它们没有帮助。这里有没有人遇到过类似的问题,或者对如何解决它有想法?

我开始绝望了。除了完全重新安装 Windows 之外,有什么方法可以修复我的开发环境吗?

0 投票
1 回答
299 浏览

profiling - dotTrace 和 Stopwatch 函数计时的巨大差异

在我的 C# 应用程序中分析几个函数的性能。我正在使用 .Net 秒表对超过 20,000 个调用的函数进行计时。每次通话的时间约为 2.8 毫秒。

但是,在逐行模式下使用 dotTrace 时,我发现对我的函数进行 20,000 次调用需要 249,584 毫秒,即每次调用约 12.5 毫秒。

现在,该函数附加到一个调度计时器,因此秒表位于函数内部,而不是注册调用本身。像这样:

但是,我很难相信通话平均需要 10 毫秒。

是否还有其他可能影响分析器或秒表计时的因素?调度计时器事件对时间的影响那么大吗?

我浏览了一些 JetBrains 论坛,但找不到任何与此相关的内容,但我确信我本可以更努力地寻找并将继续这样做。我确实意识到秒表在某些方面是不可靠的,但没想到会这么严重。

应该注意的是,这是我第一次在 C# 或 .Net 中分析代码。

0 投票
1 回答
694 浏览

c# - dotTrace 在 PipelineRuntime.ProcessRequestNotification 中显示大量未计入时间

我正在使用 dotTrace 来分析用 C# 编写并在 IIS 服务器上运行的 WCF .Net Web 应用程序。一项显示在 PipelineRuntime.ProcessRequestNotification 中花费了 7.77 秒,其中包含以下子进程

  • MyMethod 中的 0.03 秒
    • 0.016 秒在 HttpRequest.GetHeaders
  • [不安全的堆栈行走] 0.2 秒

这使得超过 7 秒的时间完全下落不明。有谁知道错过的时间会去哪里?是否有可能 MyMethod 中的某些东西占用了那个时间,但 dotTrace 只是没有正确报告它?