草庐IT

memory-leaks

全部标签

windows - 带有大文本文件的 Perl "out of memory"

我在最新版本的StrawberryPerlforWindows下使用以下代码时遇到问题:我想读入目录中的所有文本文件并处理它们的内容。我目前看不到一种逐行处理它们的方法,因为我想对文件内容进行的一些更改会跨越换行符。处理主要涉及删除大块文件(在我下面的示例代码中,它只是一行,但理想情况下我会运行几个类似的正则表达式,每个都从文件中删除内容)我在大量文件(>10,000)上运行此脚本,它总是因“内存不足!”而崩溃。大于400MB的特定文件上的消息。问题是当我编写一个只处理一个文件的程序时,代码工作正常。机器有8GBRAM,所以我认为物理RAM不是问题。我通读了其他关于内存问题的帖子,但没

c++ - 它会导致内存泄漏吗?

我写了这段代码:stringgetWinTitle(HWNDhwnd){constintMAX_LENGTH=1000;wchar_ttitle[MAX_LENGTH];ZeroMemory(title,MAX_LENGTH);GetWindowText(hwnd,(LPWSTR)title,MAX_LENGTH);char*buffer=newchar[MAX_LENGTH];wcstombs(buffer,title,MAX_LENGTH);stringres=buffer;returnres;}这里有内存泄漏吗?我需要释放ZeroMemory分配的内存吗?我是否需要显式释放分配给

windows - 告诉故事内存碎片的迹象(而不是内存泄漏)?

首先我意识到泄漏会导致内存严重碎片化,但请耐心等待。使用WinDbg并附加到进程:使用!heap(或另一个WinDbg命令),如果我正在处理内存碎片而不是泄漏,我应该期待什么?例如,我可以使用“!heapstat”和“!heapstat-hhandle”来归零产生泄漏的代码;但是在这些相同的返回值中是否有暗示碎片化的东西?XP和Vista之间的内存分配是否发生了根本性变化?特别是与DLL和其他库加载有关?我们一直只在XP上开发,所以我不熟悉Vista,但事实证明,当我们在Vista上安装相同的二进制文件时,我们在XP上看到的某些内存问题就会消失。谢谢! 最佳

c++ - 我如何找到 Win32 中的资源泄漏?

运行几个小时后,我的应用程序无法创建新的字体对象:CreateFontIndirect()returnsNULL.我知道如何查找内存泄漏(即使用并行检查器或其他分析器-其中大部分包括泄漏检测)。但是如何定位Win32中的资源泄漏? 最佳答案 为自己准备一份GDIView-这个有用的工具可以显示您的应用程序使用的所有GDI对象,包括字体名称、大小等详细信息。这在过去被证明非常方便。对于Win32应用程序,您可能需要查看WTL框架-它使用轻量级C++类包装GDI对象,为您处理对象删除。 关于

c++ - 我可以使用什么工具来分析内存使用情况?

关闭。这个问题不满足StackOverflowguidelines.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。7年前关闭。Improvethisquestion我有一个使用C++使用VisualStudio2008编写的Windows应用程序。我想获取有关内存使用情况的统计信息,以找到处理内存使用情况的瓶颈和位置。理想情况下,我希望有一个工具可以做到这一点,而无需进入并向代码本身添加计数器/分析逻辑。基本上我正在寻找的是:所有分配的列表(释放与否无关紧要,每次分配时我都想知道)每次分配的调用堆栈和一个计数器,表示调用代码和分配内存的次数。有关已

c++ - boost::regex 库中的内存泄漏

我不太喜欢Boost库。我需要它来匹配我在VS2008中编译的遗留C++/MFC项目中的正则表达式。这是一个简短的代码片段://NeedUnicodesupportCStringss;boost::tregexr(L"(.*?)");boost::tmatchwhat;CStringchat_input(L"Hello");if(boost::regex_match(chat_input,what,r))//Memoryleakonthisline{//extract$1asaCString:ss=L"Match";//CString(what[1].first,what.length

c++ - audiodg.exe 随着我调用的每个 Beep() 函数不断增长。系统不释放内存

有没有人遇到过调用WindowsBeep(freq,duration)时进程audiodg.exe内存泄漏的问题?我想这不是你通常会注意到的东西,但我发现它在调试和其他事情上很有用,我注意到在audiodg.exe中,每次哔声都会花费我大约1.5MB,它会随着每次哔声而增长,并且永远不会释放内存,除非我重新启动我的计算机或结束任务。我使用的是Windows8.1,它位于任务管理器的详细信息选项卡中。 最佳答案 我现在使用的是Windows10,但这种情况仍在发生。这不是一个很好的修复,但它确实为我消除了内存泄漏。只需转到您的声音设置

python - 获取python应用程序内存使用情况

我的主要目标是了解我的python应用程序在执行期间占用了多少内存。我在Windows-32和Windows-64上使用python2.7.5。我在这里找到了获取有关我的过程的一些信息的方法:http://code.activestate.com/recipes/578513-get-memory-usage-of-windows-processes-using-getpro/为方便起见,将代码放在这里:"""FunctionsforgettingmemoryusageofWindowsprocesses."""__all__=['get_current_process','get_m

.net - "Memory Pressure"是什么意思?

通读TessFerrandez'Blog关于垃圾收集,她说收集有3种可能的原因:Whenyouallocateanewobjectandthegeneration0budgetisreached,i.e.ifthenewobjectwouldcauseittogoover-budget.WhensomeonecallsGC.Collect(InducedGC)Basedonmemorypressure我理解第1点和第2点,但第3点中的内存压力是什么意思?我原以为这是系统中可用的一般内存,但如果系统真的用完了所有内存,那么我想整个系统都会蓝屏。内存压力的实际含义是什么?这与超出一代人的预

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

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