草庐IT

windows - Linux 中是否存在内存泄漏?

这个问题纯粹是理论上的。我想知道Linux源代码是否可能存在内存泄漏,考虑到毕竟是Linux来处理每个程序的内存,他们是如何调试它的?我显然明白Linux是用C语言编写的,必须自己处理malloc和free。我不明白的是我们如何测量操作系统的内存泄漏。请注意,这个问题不是特定于Linux的;它还解决了Windows和MacOSX(darwin)中的相应问题。 最佳答案 非常频繁的非主流驱动程序和暂存树有内存泄漏。遵循LKML,您可以偶尔看到针对处理SKB列表的极端情况的网络代码错误的修复。由于内核的性质,大部分工作是代码审查和重构,

c++ - 为什么达到峰值后内存泄漏不再继续?

我故意制造了一个内存泄漏来向即将学习指针的人展示一个观点。intmain(){while(1){int*a=newint[2];//delete[]a;}}如果在没有注释代码的情况下运行,内存将保持低位并且不会像预期的那样增加。但是,如果按原样运行,那么在具有2GBRAM的机器上,内存使用量会迅速上升到大约1.5GB,或者系统未使用的任何内存。但是,一旦达到这一点,CPU使用率(之前是最大值)就会大大下降,内存使用率也会下降到大约100MB。究竟是什么导致了这个干预Action(如果有比“Windows”更具体的东西,那就太好了),为什么程序不占用它会循环的CPU,但也不终止?它似乎卡

c++ - STL容器泄漏

我正在使用vector容器来保存包含3个整数和2个std::string的对象的实例,这是在堆栈上创建的并从另一个类中的函数填充但是通过deleaker运行应用程序显示对象中的std::string全部泄漏。这是代码://Populatorfunction:voidPopulatorClass::populate(std::vector&list){//m_MainListcontainsalistofpointerstothemasterobjectsfor(std::vector::iteratorit=m_MainList.begin();it!=m_MainList.end()

windows - HTML::TreeBuilder 中的内存泄漏

我有一些Perl代码:useHTML::Parse;useHTML::FormatText;#...my$txtFormatter=HTML::FormatText->new();while(...){#someconditionmy$txt=#getfromafilemy$html_tree=HTML::TreeBuilder->new_from_content($txt);$txt=$txtFormatter->format($html_tree);$html_tree->delete();#write$txttoafile}我注意到perl.exe进程的大小稳步增加(在大约200

windows - 调试 Windows 组件对象模型 (COM) 中的内存泄漏

我们有一个在Windows上运行的nativeC++应用程序,它使用组件对象模型(COM)作为客户端。在我们的例子中,我们可以使用IUIAutomation。不幸的是,我们的代码中存在内存泄漏,使用我们的基本内存调试方法没有显示出来:_CRTDBG_MAP_ALLOC-http://msdn.microsoft.com/en-us/library/x98tx3cf.aspx我们如何调试与滥用COM/IUnknown/和跨COM屏障的内存分配相关的可执行文件中的内存泄漏?我们在工具/库/等方面很灵活。我们在运行VisualStudio2012的Windows8上。

c# - windows服务内存泄漏,IIS进程不死

我目前正在开发一项健康监控服务,该服务将调用当前机器托管的每个网站。它所做的是贯穿所有托管网站的基本功能,通过HttpClient对机器进行调用,并将它们的当前状态响应保存到数据库中。这样做的问题是,该服务在运行时会创建多个IIS工作进程,这些进程不会消失,并且内存使用率每隔几分钟就会增加1%。我很确定这不是巧合,我已经搜索了很多关于这个问题的不同主题,但找不到适合我的结果。关于如何解决这个问题有什么想法吗?这是我正在使用的代码的摘录:publicvoidPingWebsites(Listwebsites){using(varclient=newHttpClient()){for(in

c++ - 用于泄漏检测的 Appverifier 和 Visual Studio

我在应用程序中运行Appverifier。当它检测到内存泄漏时,日志会显示“泄漏分配的地址。运行!heap-p-a以获取有关分配的其他信息。”我想那是当您在Windbg中运行时,有什么方法可以从VisualStudio内部访问分配堆栈跟踪吗? 最佳答案 据我所知没有。您将不得不使用WinDbg来追踪它们。http://www.winprogger.com 关于c++-用于泄漏检测的Appverifier和VisualStudio,我们在StackOverflow上找到一个类似的问题:

c++ - windows上qt应用的内存泄漏检测工具

有没有免费的QT程序在windows上运行的内存泄漏检测工具?我使用QtCreator作为我的IDE。如果QtCreator有任何插件或附加组件,那也是最好的。有人知道吗? 最佳答案 你可以试试cppcheck-它是一个静态分析工具,能够发现一些漏洞。 关于c++-windows上qt应用的内存泄漏检测工具,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2846456/

windows - windbg 内存泄漏调查 - 缺少堆内存

我正在使用windbg调查Windows应用程序中的缓慢内存泄漏!heap-s给出以下输出HeapFlagsReservCommitVirtFreeListUCRVirtLockFast(k)(k)(k)(k)lengthblockscont.heap-------------------------------------------------------------------------------------00000023d62c0000080000021182680116999611819001575927697832b63LFH00000023d483000008008

sql-server - 为什么这个带有 DBI 连接到 MS SQL 服务器的 perl 程序通过 ODBC 泄漏内存?

我在工作中维护了几个Perl程序,这些程序多年来在各种系统(WinXP、Win2003、Linux)上运行良好。最近我们在运行SQLServer2008的64位Windows2008Server上为一个新客户端部署了它们。代码运行得很好,然后就停止了。查看它,我发现我遇到了内存不足的错误。为了追踪泄漏,我想出了以下示例程序,该程序在一两分钟内声明了大约40兆的内存,并且还在不断增长。有什么想法吗?usestrict;usewarnings;useDBIqw(:sql_types);my$dbh=DBI->connect("DBI:ODBC:sample_db","user","pass