草庐IT

Windows 工作流运行时泄漏大量内存

以下是我的工作流程实现的概述:GUI线程启动辅助线程工作线程分析一些数据工作线程启动其他几个工作线程来处理数据这些最后的工作线程中的每一个都会创建一个工作流运行时,并且执行顺序工作流到目前为止,我一直在像这样在每个线程中创建一个新的WorkflowRuntime对象:using(WorkflowRuntimeworkflow_runtime=newWorkflowRuntime()){AutoResetEventwaitHandle=newAutoResetEvent(false);workflow_runtime.WorkflowCompleted+=delegate(objects

c++ - 如何纠正 GDI 资源泄漏?

我发现在FillRgn()WindowsGDIAPI函数之后,这个函数中使用的GDI对象以某种方式“卡在”内部系统映射中的某处,并且无法正确删除:在对象上调用DeleteObject()成功返回,但进程的GDI对象数不会减少。这是代码:voidgditest(){HBRUSHh=CreateSolidBrush(RGB(255,237,5));HRGNrgn=CreateRectRgn(0,100,100,0);FillRgn(g_DC,rgn,h);intbefore=GetGuiResources(GetCurrentProcess(),GR_GDIOBJECTS);SelectO

windows - IOCP 循环终止可能导致内存泄漏?如何优雅地关闭 IOCP 循环

我有经典的IOCP回调,它以这种方式使i/o挂起的请求出列、处理它们并释放它们:structMyIoRequest{OVERLAPPEDo;/*...otherparams...*/};boolis_iocp_active=true;DWORDWINAPIWorkerProc(LPVOIDlpParam){ULONG_PTRdwKey;DWORDdwTrans;LPOVERLAPPEDio_req;while(is_iocp_active){GetQueuedCompletionStatus((HANDLE)lpParam,&dwTrans,&dwKey,(LPOVERLAPPED*)

windows - WMIprvse 进程在 2008 服务器 R2 上泄漏内存

我有一个在虚拟机上运行的Windows2008R2服务器。我的.NET服务在此服务器上运行,定期查询WMI,例如:从Win32_Service中选择ProcessId...一两天后,WMIprvse占用了500M内存,WMI查询开始出现内存不足异常。这篇文章好像在讲这个问题:"http://support.microsoft.com/kb/958124"我看到其他文章说Microsoft已经意识到这个问题并且不会在下一个主要版本发布之前发布修复程序。http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/256eb40c-d

windows - Rad Studio 10.2.1 内存泄漏 Windows 10 商店

Delphi社区众所周知,RadStudio10.2.1FMX中存在内存泄漏。我确实找到了解决方法:Workaroundforfmxmemoryleaks我想知道一些关于它的事情。这是否只影响FMXWindows?有人告诉我,如果您的应用程序位于windowsstore上,则内存泄漏不是问题,因为windowsstore会终止它们。这是真的?这是他原话:ifyoupublishonWindowsStorethenit'snotneededbecauseallmemoryisautomaticallyfreedbytheStorewhenanappisterminated.

windows - Unix/Linux 系统易受泄漏全局内核对象的影响吗?

在Windows中,有一些对象由系统维护-事件、文件访问句柄、窗口、计时器等,它们不是无限的,因此系统中的所有程序都可以创建不超过50k的对象(我是不确定确切的数字,但对于这个问题来说不是很关键)。所以如果某个程序运行了很长时间并创建了很多对象并且没有释放它们(就像内存泄漏,但这里系统对象被泄漏)系统最终耗尽了对象和其他尝试尝试的程序做一些需要创建任何新系统对象的事情开始从系统功能中获取错误指示。例如,程序A运行并泄漏系统可用的所有对象,然后程序B尝试打开文件但失败,因为系统没有资源来服务该请求。此时唯一的解决方案是重新启动程序A,以便系统回收泄漏的资源。Unix/Linux系统是否存

c# - WPF DropShadowEffect 和 Blur 内存泄漏

我正在编写一个应用程序,它本质上是一堆松散的xaml屏幕-没有代码隐藏,只是在运行时动态链接到ViewModel。周末在一台旧电脑上运行这个程序时,发生了崩溃。跟踪和重新创建显示igdumd32.dll(英特尔图形驱动程序dll)中存在内存泄漏。经过一些调查后,我编写了2个简单的独立应用程序,在中央屏幕上有一个非常简单的动画。1个没有效果,1个在动画上有dropshadoweffect-没有其他更改,实际上是对第一个应用程序的1行更改(xaml非常冗长,否则我会在此处发布)。我通过redgate的内存分析器工具运行了40分钟。第一个很好:但是第二个在igdumd32.dll和托管代码分

c# - 处理内存泄漏的非托管 dll

我有一个c#应用程序,它依赖于第三方非托管程序集来访问某些硬件。非托管代码存在内存泄漏,每次访问后内存消耗将增加~10mb。问题是已知的;没有错误修正可用。有没有一种方法可以让我在不定期重启的情况下继续使用这个程序集?我尝试创建一个单独的AppDomain,通过appDomain.CreateInstanceAndUnwrap()将有问题的代码加载到该AppDomain中,然后通过AppDomain.Unload()卸载该域.然而,这显然不会释放该域使用的非托管内存,只会释放托管内存。我还可以将应用程序拆分为两个独立的部分,然后仅重新启动具有非托管dll的部分。然而,这将意味着重大的重

c# - 如果接口(interface)调用 Dispose 的实现是否是泄漏抽象

考虑这段代码:publicclassMyClass(){publicMyClass(){}publicDoSomething(){using(varservice=newCustomerCreditServiceClient()){varcreditLimit=service.GetCreditLimit(customer.Firstname,customer.Surname,customer.DateOfBirth);}}}我们现在想重构它以松耦合。我们最终得到这个:publicclassMyClass(){privatereadonlyICustomerCreditServices

c# - 异步编程中的悬挂等待和可能的内存泄漏

.NET4.5和AsyncCTP4.0中包含await的流程可能会由于各种原因而卡住,例如因为远程客户端没有响应。当然,WaitForAny,当我们也等待某个超时任务时,显然是一种恢复高层流的解决方案。尽管如此,这并不能解决所有可能的问题。我有以下问题:永远不会返回的await的上下文会发生什么?我知道这会造成内存泄漏。我说得对吗?我如何在调试器中或使用相应的API检查应用程序中存在多少悬挂“等待者”?是否可以全局枚举它们?如果3.是正确的,是否可以强制取消这些*await*s的任务(即清理)?注意:在问题4中,我没有询问在显式任务创建期间要使用的取消项。我指的是间接创建任务的情况:a