Questions tagged «memory-leaks»

当程序无法释放其已分配但不再使用且不可恢复的内存时,就会发生内存泄漏。


3
打开HPROF文件时出错:IOException:未知的HPROF版本
尝试Debug.dumpHprofData使用Memory Analyzer 打开HPROF文件(由创建)时,出现以下异常: java.io.IOException: Unknown HPROF Version (JAVA PROFILE 1.0.3) at org.eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.java:124) at org.eclipse.mat.hprof.Pass1Parser.read(Pass1Parser.java:69) at org.eclipse.mat.hprof.HprofIndexBuilder.fill(HprofIndexBuilder.java:65) at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.java:203) at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:114) at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:143) at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:123) at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDumpJob.java:56) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) 我该如何解决?

9
内存泄漏能走多远?
我已经多次遇到内存泄漏。通常,当我- malloc希望没有明天,或者FILE *像脏衣服一样晃来晃去时。我通常认为(拼命:希望)至少在程序终止时才清理所有内存。在程序终止或崩溃时,是否存在无法收集泄漏内存的情况? 如果答案因语言而异,那么让我们关注C(++)。 请注意,短语“好像没有明天”和“晃来晃去……就像脏衣服”一样是双曲线的用法。不安全* malloc可能伤害您所爱的人。另外,请注意不要弄脏衣物。
118 c++  c  memory  memory-leaks 


12
如果未关闭.NET中的MemoryStream,是否会造成内存泄漏?
我有以下代码: MemoryStream foo(){ MemoryStream ms = new MemoryStream(); // write stuff to ms return ms; } void bar(){ MemoryStream ms2 = foo(); // do stuff with ms2 return; } 我分配的MemoryStream是否有可能以后无法以某种方式处置? 我有一个同行审查,坚持要求我手动关闭此链接,但我找不到信息来说明他是否有正确的论点。

1
有没有办法以编程方式判断FastMM是否未释放特定的内存块?
我试图检测是否没有释放一块内存。当然,管理器通过对话框或日志文件告诉我,但是如果我想将结果存储在数据库中怎么办?例如,我想在数据库表中有分配给定块的例程名称。 阅读FastMM的文档后,我知道自版本4.98以来,我们可能会在发生内存分配,释放和重新分配时被管理员通知。例如,OnDebugFreeMemFinish事件正在传递给我们,PFullDebugBlockHeader其中包含有用的信息。PFullDebugBlockHeader缺少一件事-如果应用程序释放了给定的块,则该信息。 除非OnDebugFreeMemFinish仅针对未释放的块调用?这是我不知道并且想找出的。 问题在于,即使挂入OnDebugFreeMemFinish事件,我也无法确定是否释放了该块。 这是一个例子: program MemLeakTest; {$APPTYPE CONSOLE} uses FastMM4, ExceptionLog, SysUtils; procedure MemFreeEvent(APHeaderFreedBlock: PFullDebugBlockHeader; AResult: Integer); begin //This is executed at the end, but how should I know that this block should be freed //by application? Unless this is executed ONLY for not freed blocks. end; procedure Leak; …

13
诊断内存泄漏-允许的内存大小已耗尽#个字节
我遇到了可怕的错误消息,可能是经过艰苦的努力,PHP的内存已用完: 第123行的file.php中的####字节已用完的允许内存大小(尝试分配####字节) 增加限制 如果您知道自己在做什么并且想要增加限制,请参见memory_limit: ini_set('memory_limit', '16M'); ini_set('memory_limit', -1); // no limit 谨防!您可能只是在解决症状,而没有解决问题! 诊断泄漏: 错误消息指向带有循环的行,我认为这是正在泄漏或不必要地累积内存。我memory_get_usage()在每次迭代结束时都打印了语句,可以看到数量缓慢增长直至达到极限: foreach ($users as $user) { $task = new Task; $task->run($user); unset($task); // Free the variable in an attempt to recover memory print memory_get_usage(true); // increases over time } 出于这个问题的目的,我们假设可以想象的最糟糕的意大利面条代码隐藏在全局范围内 $user或Task。 哪些工具,PHP技巧或调试伏都教可以帮助我发现并解决问题?
98 php  memory-leaks 

7
大对象堆碎片
我正在使用的C#/。NET应用程序正遭受缓慢的内存泄漏。我已经将CDB与SOS结合使用,试图确定正在发生的事情,但是数据似乎没有任何意义,因此我希望你们中的一个以前可能已经经历过这种情况。 该应用程序在64位框架上运行。它正在不断地计算数据并将其序列化到远程主机,并且相当大地达到了大对象堆(LOH)。但是,我希望大多数LOH对象都是瞬态的:一旦完成计算并将其发送到远程主机,就应该释放内存。但是,我看到的是大量(活动的)对象数组与空闲的内存块交错,例如,从LOH中获取随机段: 0:000> !DumpHeap 000000005b5b1000 000000006351da10 Address MT Size ... 000000005d4f92e0 0000064280c7c970 16147872 000000005e45f880 00000000001661d0 1901752 Free 000000005e62fd38 00000642788d8ba8 1056 <-- 000000005e630158 00000000001661d0 5988848 Free 000000005ebe6348 00000642788d8ba8 1056 000000005ebe6768 00000000001661d0 6481336 Free 000000005f214d20 00000642788d8ba8 1056 000000005f215140 00000000001661d0 7346016 Free 000000005f9168a0 00000642788d8ba8 1056 000000005f916cc0 00000000001661d0 7611648 Free 00000000600591c0 00000642788d8ba8 1056 00000000600595e0 …

1
永远不会解决的承诺会导致内存泄漏吗?
我有一个Promise。我创建它是为了取消AJAX请求(如果需要)。但是由于我不需要取消该AJAX,因此我从未解决过该问题,因此AJAX成功完成了。 简化的代码段: var defer = $q.defer(); $http({url: 'example.com/some/api', timeout: defer.promise}).success(function(data) { // do something }); // Never defer.resolve() because I don't need to cancel that ajax. What happens to this promise after request? 永远不会解决那样的承诺会导致内存泄漏吗?您对如何管理Promise生命周期有任何建议吗?

5
Go是否会像Java一样受到微妙的内存泄漏?
这是事实: Go语言具有垃圾回收器。 Java有垃圾回收 许多Java程序都有(微妙的或没有的)内存泄漏 作为具有内存泄漏的Java程序的示例(并非出于胆怯,这个问题可能会动摇您的信念),请参见此处有关一个名为Tomcat的小型Java程序,该程序甚至具有“查找泄漏”按钮:有没有办法以避免在Tomcat中取消部署内存泄漏? 所以我想知道:用Go编写的程序是否会表现出与某些用Java编写的程序一样的(细微或不细微的)内存泄漏?
89 java  memory-leaks  go 

17
有效地计算文本文件的行数。(200mb +)
我刚刚发现我的脚本给了我一个致命错误: Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 440 bytes) in C:\process_txt.php on line 109 那行是这样的: $lines = count(file($path)) - 1; 因此,我认为将文件加载到内存中并计算行数有困难,有没有一种更有效的方法可以在没有内存问题的情况下执行此操作? 我需要计算的行数从2MB到500MB的文本文件。有时候也许是演出。 谢谢大家的帮助。


14
资源泄漏:“关闭”从未关闭
为什么Eclipse在以下代码中给我加温的“资源泄漏:'in'永远不会关闭”? public void readShapeData() { Scanner in = new Scanner(System.in); System.out.println("Enter the width of the Rectangle: "); width = in.nextDouble(); System.out.println("Enter the height of the Rectangle: "); height = in.nextDouble();


11
在分配的内存上不使用free()是否可以吗?
我正在学习计算机工程,并且有一些电子课程。我听到了,从我的两个教授(这些课程),有可能避免使用的free()功能(后malloc(),calloc()等),因为分配可能不会被再次使用的存储空间分配等内存。也就是说,例如,如果您分配4个字节然后释放它们,则将有4个字节的空间,可能不会再分配:您将有一个Hole。 我认为这很疯狂:您不能拥有一个非玩具程序,在其中不释放内存就在堆上分配内存。但是我没有知识来确切解释为什么它如此重要以至于每个人都malloc()必须有一个free()。 因此:在任何情况下都可以malloc()不使用而使用afree()吗?如果没有,我该如何向教授解释?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.