草庐IT

memory-leaks

全部标签

c# - 随机错误 : Attempted to read or write protected memory

我们有一个使用WCF服务的C#.Net应用程序。该应用程序部署在我们的生产服务器中的Windows服务应用程序下。该模块的一部分负责为worker今天要工作的较小区域创建形状文件((*.shp,*.dbf),并将它们发送到PDA。为了编写形状文件,我们使用第三方dll,NetTopologySuiteGisSharpBlog.NetTopologySuite.IO.ShapefileWriter它也在C#中。(我不确定它引用的任何dll是否使用非托管代码。)该系统可能会正常工作一段时间,比如一周。然后突然我们得到一个异常说Attemptedtoreadorwriteprotectedm

c# - 位图类不处理流?

所以,在发现thattheBitmapclassexpectstheoriginalstreamtostayopenforthelifeoftheimageorbitmap之后,我决定查明Bitmap类在处理时是否真的关闭了流。查看源代码,Bitmap和Image类创建一个GPStream实例来包装流,但不存储对GPStream或Stream实例的引用。num=SafeNativeMethods.Gdip.GdipLoadImageFromStreamICM(newGPStream(stream),outzero);现在,GPStream类(内部)没有实现Release或Dispose

c# - 编译的表达式树会泄漏吗?

据我所知,JIT代码在程序运行时永远不会从内存中释放。这是否意味着在表达式树上重复调用.Compile()会泄漏内存?这意味着只在静态构造函数中编译表达式树或以其他方式缓存它们,这可能并不那么简单。对吧? 最佳答案 它们可能是GCed...LambdaExpression.Compile()使用LambdaCompiler.Compile(LambdaExpression,DebugInfoGenerator)类,即throughoneoftheLambdaCompilerconstructors使用DynamicMethod那,来

c# - 检测 "leaked"IDisposable 对象

有很多问题询问如何检测IDisposable对象泄漏。答案似乎是"youcan't".我刚刚检查了最简单的测试用例,FxCop10.0不执行此操作,带有MSVS2010的ReSharper4不执行此操作。这对我来说似乎是错误的,比C中的内存泄漏更糟糕(至少我们已经建立了检测工具)。我在想:是否有可能,使用反射和其他晦涩的高级技术,我可以在运行时注入(inject)一个检查,在终结器中查看是否调用了Dispose?用WinDBG+SOS变魔术怎么样?即使没有现成的工具可以做到这一点,我也想知道这在理论上是否可行(我的C#不是很熟练)。想法?注意这个问题的标题可能具有误导性。这里真正的问题

c# - ListCollectionView 是否泄漏内存?

我一直在研究如何避免因View模型中对INotifyCollectionChanged事件的强引用而导致的内存泄漏。我正在尝试使用ListCollectionView看看它是否适合我。我认为以下是内存泄漏,我做错了吗?varstuff=newObservableCollection();while(true){varresult=newListCollectionView(stuff);//JusttokeepmakesurethatthememoryI'mseeing//isn'twaitingtobeGC'dGC.Collect();} 最佳答案

C# 字典 : faster access but less memory footprint

我需要一些关于以最小内存占用和最大访问性能进行存储和访问的最佳方式的建议。例如。对于每辆车,我想存储型号和名称。我有以下几点想法:选项1:Dictionary>values=newDictionary>();Dictionarylist=newDictionary();list.Add("2001","JettaS");list.Add("2002","JettaSE");list.Add("2002","JettaLE");values.Add("VolksWagen",list);选项2:Dictionary>>values2=newDictionary>>();List>list

c# - string.split() "Out of memory exception"读取制表符分隔文件时

我在我的C#代码中使用string.split()来读取制表符分隔的文件。我正面临下面代码示例中提到的“OutOfMemory异常”。这里我想知道为什么文件大小为16MB时会出现问题?这是正确的方法吗?using(StreamReaderreader=newStreamReader(_path)){//...........Loadthefirstlineofthefile................stringheaderLine=reader.ReadLine();MeterDataIPValueListobjMeterDataList=newMeterDataIPValueL

c# - "Data Source cannot be empty. Use :memory: to open an in-memory database"是什么意思?

我最近将我的SQLServer数据库转换为SQLite数据库。但是当我尝试使用.Open()打开我的SQLite时,它​​抛出了这个错误:DataSourcecannotbeempty.Use:memory:toopenanin-memorydatabase编辑:添加连接字符串:ConnectionString=@"DataSource=D:\XXX.db;Version=3";connection=newSQLiteConnection(connectionString);connection.Open();为什么我会得到这个?我将相同的SQLServer数据库转换为SQLCE和my

c# - 未调用行为的 OnDetaching 函数

我在特定控件上有WPF行为。当我关闭包含控件的窗口时,不会调用OnDetaching函数。该行为继续存在(因为它注册到的事件),尽管窗口不再存在(内存泄漏)。为什么OnDetaching函数没有触发,我该如何解决?protectedoverridevoidOnAttached(){base.OnAttached();this.AssociatedObject.MouseLeftButtonDown+=AssociatedObject_PlotAreaMouseLeftButtonDown;this.AssociatedObject.MouseLeftButtonUp+=Associat

c# - 追踪 .NET Windows 服务内存泄漏

在生产环境中安装我的Windows服务之前,我一直在寻找可以执行的可靠测试,以确保我的代码不包含内存泄漏。但是,我在网上能找到的所有内容都是使用任务管理器查看已用内存或一些付费内存分析器工具。根据我的理解,查看任务管理器并没有多大帮助,也无法确认内存泄漏(以防万一)。如何确认是否有内存泄漏?有没有免费的工具可以找到内存泄漏的根源?注意:我使用的是.NetFramework4.6和VisualStudio2015Community 最佳答案 您可以使用任务管理器。GC应用程序可能会泄漏内存,它会在那里显示。但是……免费工具-“.Net