问题标签 [dotmemory]

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

asp.net - 无法使用 dotMemory 开始内存分析

我正在尝试使用JetBrains dotMemory来分析在 IIS10 上运行的 ASP.NET MVC Web 应用程序。当我附加到进程w3wp.exe并单击运行时,出现以下错误:

无法开始分析。细节:

Profiler 无法附加到进程:请确保该进程没有在其他 Profiler、性能监控工具、模拟工具下运行,或尝试重新启动计算机。

我没有任何其他分析器或工具可以运行该进程。另外,尝试重新启动。但是,没有任何效果。

有什么建议么?

0 投票
2 回答
694 浏览

c# - 我在结合 dotMemory、xUnit 和异步时做错了什么

我有一个单元测试,我尝试验证我是否已经处理了曾经附加到主用户界面的文档。单元测试必须是异步的,因为一切都需要在 STA 线程下运行,我必须等待创建用户界面。

我有一个助手可以将动作分派到 STA 线程上。

我在测试主体中创建内存对象,然后将其传递给异步方法,如下所示。

查看用###注释的代码行以查看实际的问题行。dotMemory 报告该对象尚不存在,但我已经做出断言证明该对象确实存在。

(STA Helper 类可以在https://gist.github.com/bradphelan/cb4f484fbf6a7f9829de0dd52036fd63找到)

这是与 async 和 dotMemory 有关的问题吗?

我已经创建了上述相同测试的同步版本,它没有失败。ShouldCollectAsyncShouldCollectSync下面有两个测试。异步一个失败,同步一个通过。

0 投票
0 回答
598 浏览

c# - dotMemory 非托管资源

我有 ac# ASP .NET MVC5 应用程序,我正在使用dotMemory. 它是一个小型 Web 应用程序,大约有 15 个控制器,使用EF6/dal, 和AutoFac/DI. 还有一些其他的模型/服务/等库。

dotMemory显示600mb正在分配非托管内存,并且为.NET托管资源分配了大约 20 MB 的内存。 dotMemory不允许您探索任何非托管资源。那么如何确定为什么我的应用程序使用了如此多的非托管内存呢?

谢谢

0 投票
1 回答
103 浏览

c# - 使用 linq 时 WPF 应用程序中的内存问题

我目前正在寻找我们应用程序中的内存泄漏,当涉及到执行任何 linq 查询的视图模型时,我在内存中找到了一个具有该命名空间的对象。我正在使用 dotMemory 进行检查,它列出了带有 +<>c 结尾的对象。我没有找到任何解释这是什么类型的对象,以及它是否存在于内存中是否是一个真正的问题,但我发现它与 linq 查询有关。重现此代码的代码,如您所见,从未使用过 Linq 查询结果。

来自点内存的快照: 在此处输入图像描述

我希望有人能解释一下 a +<>c 是什么类型的对象,也许为什么它没有从内存中释放,或者这只是 Linq 的工作方式?

0 投票
2 回答
1109 浏览

c# - dotMemory 和跟踪内存泄漏

我有我认为的基本 Web 应用程序 MVC,EF6。用户有一个仪表板,显示一个包含来自两个不同数据库系统的数据的表。MSSQL 和 Informix(使用 IBM.Data.Informix)。

随着时间的推移,IIS 进程一直在蚕食内存。我抓住 dotMemory 帮助我尝试定位它,但现在试图弄清楚如何读取这些数据。

我让网页保持打开状态,每隔 10 秒就会有一个 Ajax 调用返回新数据。

第 4 个快照是在第 3 个快照后几个小时拍摄的。 在此处输入图像描述

总数与下面的数字不匹配,但有些事情不是应有的。

下面的图片似乎告诉我,我的应用程序最多只使用 10mb。

在此处输入图像描述

我还在研究堆,但似乎这不是大块所在的地方。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我仍在挖掘视频和指南,以帮助我找出这个问题的位置。我使用了很多内置框架,我真的没有看到我正在使用的代码有问题,除非某处有错误,或者我真的错过了我不应该在代码中做的事情。

数据库管理器

控制器

0 投票
1 回答
211 浏览

c# - 使用 Catel 命令对 CanExecuteChanged 进行内存泄漏

我正在分析一个使用 Catel 作为 MVVM 框架的 WPF 应用程序,我已经看到在 ViewModel 中我有 2 个保留路径 在此处输入图像描述

现在我在附加到上下文菜单的行为中创建了这样的 RadMenuItem,它们被定义为

现在命令定义在

我究竟做错了什么?谢谢

0 投票
1 回答
245 浏览

c# - 除非启动应用程序,否则无法连接到 dotMemory API

我有以下内容来启动分析 API:

但是,如果我运行它并将 dotMemory 附加到它,那么MemoryProfiler.CanControlAllocations它总是falseMemoryProfiler.IsActive变成true)。

如果我让 dotMemory 启动应用程序,那么它会按预期工作,并且两者都评估为true.

但是,如果我将 a 替换为whileaConsole.Read()和 an,if如下所示:

然后它工作正常。

这是怎么回事?循环如何while改变这样的行为?

更奇怪的行为

如果我运行以下命令(if注释掉)

然后我得到输出:

然后在调用时引发异常EnableAllocations()

我希望那是因为MemoryProfiler.CanControlAllocationsis false

但是,如果我取消注释该if声明:

然后一切正常,我得到了预期的输出:

0 投票
0 回答
225 浏览

prism - dotmemory 快照崩溃应用程序

Resharper Ultimate:2016.3.2 DotMemory:2016.3.2 Visual Studio 2017 Windows 7 Prism 6.3.0 Ninject

这有点奇怪,所以我不确定如何描述它,但我会试一试。

最初,我设置了向其区域注册的页面,因此我的所有页面都声明如下

然后将它们绑定到该区域。

在更新内容时,我决定不再麻烦绑定页面并将它们注册到区域,而是切换到使用 RequestNavigate,因此我删除了向区域注册视图,并将绑定更改为

在调试模式下,这一切都很好。然而,这就是事情变得奇怪的地方。我运行 dotmemory 进行了一些泄漏测试,发现如果我在进入某些页面之前拍摄快照,软件就会崩溃。如果我没有拍摄快照,或者我在进入页面后拍摄了快照,则没有任何崩溃。

另外,如果我添加

绑定页面后,我也没有问题。(所以现在这是我可怕的临时修复)

我只是想知道是否有人知道为什么会发生这种情况。我得出的唯一两个结论是

a) RequestNavigate 没有通过 ninject 正确解析。b) 不知何故,从 dotmemory 获取快照正在清除内核中尚未解决的任何内容。

我的期望并不高,但如果有人有任何想法可能导致这种情况,它会有所帮助。

0 投票
1 回答
95 浏览

white-framework - 使用自动化测试进行内存分析?

目前正在向我们的 UI 框架添加一些自动化测试,我想知道是否有任何方法可以同时执行某种内存分析。

例如,与其让白启动我们的应用程序,不如让它启动 dotmemory(或其他内存诊断工具)获取快照,然后开始执行自动化测试。

我知道这不会像这样追踪内存泄漏,但如果某处内存出现峰值,我们可以将其用作指标。

如果有人知道启动它的方法,那将非常有帮助,即使我们必须使用内置于内存分析器而不是点内存的视觉工作室。

0 投票
0 回答
68 浏览

unit-testing - 如何使用 dotmemoryunit 比较快照

所以我已经开始使用 Jetbrains.DotMemoryUnit nuget 包运行内存泄漏测试,但它似乎没有工作。

我们所有的内部命名空间都具有类似 XXX.UI.ModuleName 的格式。

但是在运行测试时,它并没有断言何时存在内存泄漏,并且我故意放入了几个(并且几个不是故意的)

知道我在哪里出错了吗?(我假设它在 where 部分,如果在任何地方)


只是为了确定我改变了获取快照的方式,以便我使用

dotmemoryapi.GetSnapshot

然后我手动打开了我的两个快照来比较它们,并没有提到我的 XXX 命名空间。

但是,如果我也使用分析执行完全相同的内存测试,但手动按下按钮,则会有很多带有 XXX 命名空间的条目。

老实说,不知道这里发生了什么。