dotmemory

Why EF Core 2.2.6 does not garbage collect?

可紊 提交于 2020-08-08 05:31:38
问题 I am using the dotMemoryUnit to prove the my DbContext object is getting garbage collected properly. I feel that this code should work properly in a unit test, but the test always fails. The only thing I can guess is EF Core is holding a reference somewhere. Edit: I'm not sure the suggested question addresses this problem as this is .Net Core and not .Net Framework. The documentation for GC.Collect()'s default is forced and the documentation says nothing about hints. Edit 2: I did find the

关于Unity C# 的string

☆樱花仙子☆ 提交于 2020-08-06 10:43:25
关于Unity C# 的string 我之前只知道 很多高级语言中关于字符串都有一个常量池,来保证只有一份(我记得lua语言中string就是一份)。 感兴趣的可以看看为什么众多语言都将字符串设计成不可变的?。 深入了解之后发现没有那么简单。 下面截图是自己很low的测试, 发现有意思的现象。 微软官方对字符串的文档描述: https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/constants ,下面的话解释了我上方第一个截图 https://docs.microsoft.com/zh-cn/dotnet/api/system.string.intern?view=netcore-3.1 这个就是字符串常量池 , 要注意生命周期,而且gc基本不会回收! 当我看到后面的描述我有点懵的,字符串有多份相同的拷贝?常量池的作用呢? 字符串值相等(hash值一样而已),但是两个变量的引用不等? https://dailydotnettips.com/the-string-intern-pool/ 这个文章也解答了疑惑, String.intern方法 跟 StringBuilder的ToString 返回的string引用不同的原因是什么 。 常量池副作用: https:/

memory leak cant find where the allocations originate from or why they being held

回眸只為那壹抹淺笑 提交于 2020-06-01 07:38:26
问题 .net memory profiler https://memprofiler.com/ to try and see if i have any memory leaks... See screenshot From the screenshot it very much looks like i do have one. But its extremely hard to tell. Is anyone else Familiar enough with this profiler to try guide me. I have spent white a bit of time i have also tried jetbrains dotmemory Problem is, i cant tell if this is actually leak Or Entity Framework core bug or feature? and to me it make no sense. obviously i know you wont know my code base

JVM GC VS .Net GC

ぐ巨炮叔叔 提交于 2020-05-07 12:57:15
Net平台GC VS JVM垃圾回收 前言 不知道你平时是否关注程序内存使用情况,我是关注的比较少,正好借着优化本地一个程序的空对比了一下.Net平台垃圾回收和jvm垃圾回收,顺便用dotMemory看了程序运行后的内存快照,生成内存快照后,妈妈再也不担心我优化程序找不到方向了。 .Net平台垃圾回收 内存优化 凭空想象这些概念多少会索然无味,下图是我我基于本地的一个程序生成的内存快照,使用jetbrains推出的 dotMemory 工具生成。 生成内存快照 程序运行时可以通过右上角的Get SnapShot按钮生成内存快照,内存快照里可以看到具体的对象、消耗内存的情况,比如说一些大的字符串对象,重复的大量的字符串对象, 那么从上面这张图上都能看到哪些关键字呢? 什么是Heap generation1和Heap greneration2呢? 什么是Allocated呢? 什么是GC GC (Garbage Collection)如其名,就是垃圾收集,当然这里仅就内存而言。Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root为基础,遍历应用程序在 托管堆(Managed Heap) 上动态分配的所有对象,通过识别它们是否被引用来确定哪些对象是已经死亡的、哪些仍需要被使用

.Net平台GC VS JVM垃圾回收

拈花ヽ惹草 提交于 2020-05-01 21:40:31
原文: .Net平台GC VS JVM垃圾回收 前言 不知道你平时是否关注程序内存使用情况,我是关注的比较少,正好借着优化本地一个程序的空对比了一下.Net平台垃圾回收和jvm垃圾回收,顺便用dotMemory看了程序运行后的内存快照,生成内存快照后,妈妈再也不担心我优化程序找不到方向了。 .Net平台垃圾回收 内存优化 凭空想象这些概念多少会索然无味,下图是我我基于本地的一个程序生成的内存快照,使用jetbrains推出的 dotMemory 工具生成。 生成内存快照 程序运行时可以通过右上角的Get SnapShot按钮生成内存快照,内存快照里可以看到具体的对象、消耗内存的情况,比如说一些大的字符串对象,重复的大量的字符串对象, 那么从上面这张图上都能看到哪些关键字呢? 什么是Heap generation1和Heap greneration2呢? 什么是Allocated呢? 什么是GC GC (Garbage Collection)如其名,就是垃圾收集,当然这里仅就内存而言。Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root为基础,遍历应用程序在 托管堆(Managed Heap) 上动态分配的所有对象,通过识别它们是否被引用来确定哪些对象是已经死亡的、哪些仍需要被使用

dotMemory 2019.3.1一直试用

廉价感情. 提交于 2020-04-22 00:57:36
创建一个bat脚本, 里面写上: reg delete HKEY_CURRENT_USER\Software\JetBrains\dotMemory /f reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{9656c84c-e0b4-4454-996d-977eabdf9e86} /f 5天过了之后重新运行一下就可以了 同理JetBrains家的产品, 只要可以试用的, 应该都可以用这个办法, 得到注册表里面找一找 来源: oschina 链接: https://my.oschina.net/u/4350184/blog/3288598

dotMemory 2019.3.1一直试用

妖精的绣舞 提交于 2020-04-21 12:30:57
创建一个bat脚本, 里面写上: reg delete HKEY_CURRENT_USER\Software\JetBrains\dotMemory /f reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{9656c84c-e0b4-4454-996d-977eabdf9e86} /f 5天过了之后重新运行一下就可以了 同理JetBrains家的产品, 只要可以试用的, 应该都可以用这个办法, 得到注册表里面找一找 来源: oschina 链接: https://my.oschina.net/u/4332520/blog/3288651

Am I doing something wrong combining dotMemory, xUnit and async

两盒软妹~` 提交于 2019-12-23 12:33:03
问题 I have a unit test where I try to verify that I have disposed of a document that was once attached to the main user interface. The unit test has to be async in that everything needs to be run under an STA thread and I have to await the user interface being created. I have a helper that dispatches actions onto an STA thread. I create the memory object in the main body of the test and then pass it to the async methods as below. See the lines of code commented with ### to see the actual problem