大家好,
我是一个相当大的C#Windows资源管理器扩展的开发人员。正如您可以想象的那样,涉及到很多P/Invoke,不幸的是,我已经确认它正在某个地方泄漏非托管内存。然而,关于如何找到漏洞,我却一无所获。我尝试了以下内容,即使用WinDBG。但是,当我尝试使用时!堆,它不会让我这样做,因为我没有explorer.exe的.PDB文件(而且公共符号文件显然不够)
帮助?我用了很多时间,效果很好。您提到的描述WinDbg的指南使用了与UMDH相同的方法,基于调试堆记录所有分配的堆栈跟踪的能力。唯
概述
在iOS项目中,我有一个UITableView,我正在尝试移动UITableView的一行
在我的模型中,数据的顺序已经改变,所以我试图在表中直观地显示它,这就是为什么我使用了UITableView的方法moveRowatinexPath:toIndexPath:
为此,我创建了一个nsindepath实例,并将其传递给UITableView的方法
当泄漏累积时
当您使用方法indexPathForRow:section:(如代码部分所示)创建nsindepath实例,然后将其传递给
我相当肯定我使用KO版本2.0时内存泄漏。我有一个可观察的数组,其中填充了AJAX调用的结果。此集合是用for each绑定到DIV容器的数据。数组中的每个对象都有一个绑定到复选框的可观察值。我已经使用Chrome检查了堆,我的结论如下:
如果AJAX调用返回3个元素,它们将在DOM上正确呈现。如果我在此时拍摄堆的快照,其中有三个SearchResult对象。如果我再次触发AJAX调用并返回5个元素,则所有5个元素都正确地呈现到DOM中。但是,如果我在Chrome中拍摄堆的快照,并对它们进行比较
我的应用程序中有一个非常简单的CUDA组件。Valgrind报告了大量泄漏,仍然可以联系到,所有这些都与Cudamaloc电话有关
这些泄密是真的吗?我为每个cudamaloc调用cudaFree。这是valgrind无法解释GPU内存分配的原因吗?如果这些泄漏不是真实的,我可以抑制它们并让valgrind只分析应用程序的非gpu部分吗
extern "C"
unsigned int *gethash(int nodec, char *h_nodev, int len) {
unsign
我一直在运行仪器,以了解为什么我的SKScene不会解除分配,并得到毫无意义的“泄漏”。其中一个“泄密”发生在正确解除分配的场景中,并指向以下内容:
border.path = path;
与导致泄漏的管线相同,但下一条管线为:
CGPathRelease(path);
border.lineWidth = 1.0f;
border.strokeColor = [SKColor yellowColor];
[border setAlpha:0.0f];
[border runAction:[S
标签: Memory Leaks
uiimagecore-graphicsretina-displaydrawimage
我试图用下面的方法在UIImageView中绘制文本。
问题是,该方法是从循环内部调用的,循环迭代32次(在本例中)。我在第14次电话“文本图像就绪”后就死了
不幸的是,当我使用仪器查找漏洞时,应用程序在我得到任何东西之前就死掉了。
我不太确定我应该发布什么,或者是否有更好的方法来做到这一点
谢谢
-(void) writeNameToImage:(int)soundIndex setNumber:(int)setNumber
{
NSString* strTextToWrite;
我现在使用Android作为我的Netty客户端。和Windows作为我的Netty服务器。
最近,我在Netty上发现了一个奇怪的行为。
当我打开服务器端应用程序时,内存只有30MB。
但几个小时后,它上升到300米。它是原始内存使用量的10倍。
我打开服务器的时间越长,它增加的内存就越多
我不知道为什么会这样。这正常吗
顺便说一下,因为Netty不支持内置的服务器推送功能。
因此,我使用静态方法将所有通道存储在地图中:
public static final Map<Integer,
因此,我使用REDIS作为缓存层实现了ELK。
我使用的REDIS 3.0.4是我为Redhat EL6找到的RPM。
我还运行jemalloc 3.6.0
我相信REDIS的配置基本上是普通的,除了最大内存上限和非默认逐出策略
maxmemory 500mb
及
虽然我觉得驱逐政策可能不是必需的
现在,我已经验证了存储通常是空的,即我的日志存储索引器工作正常,数据正在进入弹性搜索。
我所关心的是REDIS的已用内存继续呈上升趋势,从我所看到的情况来看,如果已用内存达到最大值,则REDIS停止
其想法是:
开始测试前,测量usedJSHeapSize
完成测试后,测量usedJSHeapSize
比较1和2的值,如果大小增加到定义的阈值以上,则场景失败
到目前为止,我已经尝试:
SG量角器工具(),允许重复同一场景多次并查找内存增长。我已经放弃了它,因为它不允许检查单个场景()的内存使用情况
从浏览器对象中提取内存值,这似乎无法(或我无法)与规范集成->
还有其他想法吗?这可以通过调用
用于Chrome获取性能参数
下面的代码对我来说很好
it('Dummy Test',func
问题:为什么会发生内存泄漏?是什么原因造成的?如何修复它
我有一个运行着1个网站的服务器。它托管在32位应用程序池中。启动到2-3 Gb后,它会在内存中增长。从这2-3 Gb中,1-1.5 Gb是托管代码的内存,我们正在处理它,但其他1-1.5 Gb是webengine4模块分配的本机内存。我假设它是某个IIS模块(来自DebugDiag 1.2的输出):
按分配大小排列的前4项功能
webengine4!W3_MGD_BUFFER_POOL::RentBuffer+1a 1,29 GByte
我是MVVM Light的新手,我想我正在经历一种意想不到的行为
使用内存探查器,我注意到在视图模型上调用Cleanup后,所有WeakAction实例仍在内存中,该视图模型扩展了ViewModelBase并注册为多种消息类型的收件人
我看到ViewModelBase.Cleanup()应该将视图模型完全注销为消息收件人,但我还看到Messenger.unregister(对象收件人)不调用RequestCleanup(),而所有其他注销重载都会调用。
在视图模型的清理覆盖中显式调用Reques
检查崩溃转储文件是否存在客户端报告的内存不足异常时,的结果!DumpHeap-stat显示,45000个“Free”类型的对象占用了575MB的内存,我认为由于大小的原因,大多数对象必须驻留在Gen2中
我首先查找问题的地方是大型对象堆(LOH)和固定对象。包含可用空间的大型对象堆只有70MB,因此这不是问题所在,正在运行!gchandles显示:
GC句柄统计信息:
强句柄:155
销柄:265
异步固定句柄:8
参考计数句柄:163
弱长句柄:0
弱短句柄:0
其他句柄:0
与自由对象的数
我花了最后一天的时间在代码中查找内存泄漏。对于循环中的每个帧,我可以在任务管理器中看到大约200 Mb的内存丢失。最终,程序当然崩溃了
伪代码如下所示:
for frame = 0:NBROFFRAMES
cv::Mat = getImage(frame);
cout<<"Before optimization"<<endl;
getchar();
optFunction.optimizeColor(img);
cout
我试图编写一个队列读取器,它遍历一个大文件,并在将其传递给实际操作之前在每一行上运行一个python函数
我使用string\u input\u producer读取单个.tsv文件。然后我用tf.TextLineReader创建一个队列,并用tf.py_func增强每一行。这样做,我注意到一些内存泄漏,只有在调用tf.py_func时才会生效(是的,甚至作为noop)
运行以下代码将产生以下结果:
$ python test_memory.py 2> /dev/null
run WITH
我想为我的项目优化内存问题。我一直在寻找某种工具(第三方工具没有问题),可以在我的项目中检测内存泄漏。我尝试过Valgrind,但它没有根据我的需要提供适当的输出&而且这个工具在os x(10.13)上也不完美。我也尝试过xcode的仪器,我不知道我是否也可以在MacOSX上使用(除了ios)。
我已经在仪器上调试了我的代码,它没有正确地显示文件的代码行,在那里发生了泄漏。
我不习惯使用xcode&所以这是我的第一次体验。
请帮帮我
提前感谢。:)
对于Valgrind,我得到了这种类型的巨大输
我试着以一种天真而直接的方式释放它们,比如deleteporfree(p)。结果valgrind开始报告我有不匹配的删除。我看了一下stackoverflow和Genevia,找不到任何明确的答案。我还尝试使用soap_destroy函数,但它并没有消除我的漏洞
我使用gsoap代理的主要函数(节略)如下所示:
bool ParcDataSvcProxy::GetTradingHours(vector<TradingHours>& tradingHours, vector&l
Valgrind报告o字节丢失时意味着什么,如下所示:
==27752== 0 bytes in 1 blocks are definitely lost in loss record 2 of 1,532
我怀疑这只是创造性地使用malloc的产物,但可以肯定(-
编辑:当然,真正的问题是它是否可以忽略,或者它是否是一个有效的泄漏,应该通过释放这些缓冲区来修复。看起来您分配了一个大小为0的块,但随后没有释放它。是的,这是一个真正的泄漏,应该修复
当您malloc(0)时,malloc可以是
我正在使用一些GPU程序(使用CUDA4.1和C),有时(很少)我不得不中途使用Ctrl+C来处理一些异常。早些时候,我尝试使用CudaDeviceReset()函数,但取代了对CudaDeviceReset()的信任,因此我开始用老式的方式处理此类异常,即“计算机重启”。随着项目规模的增长,这种方法变得令人头痛。如果有人能提出更好的解决方案,我将不胜感激。我认为这个问题更为根本——它实际上是一个应用程序设计问题,而不是CUDA问题。如果您正确地设计应用程序以定期检查中断,并在中断时退出主循环并
我使用以下参数运行:
--leak-check=full --show-reachable=yes --leak-resolution=high --num-callers=100 --trace-children=yes
在内存泄漏日志中,我看到了一些错误消息,其中包含到main的完整堆栈跟踪,但有些消息如下所示:
==3956== 1,999,140 (68,796 direct, 1,930,344 indirect) bytes in 5,733 blocks are definite
我基于gstreamer-1.0编写了一个简单的代码,使用playbin对循环的某个文件进行解码,每次playbin创建元素mpeg2dec元素时,该元素都有一个新名称。第一次使用的名称可以是mepg2dec0,然后当再次播放文件时,它会将后缀索引增加到mpeg2dec1、mpeg2dec2,等等
以下是一些代码引用:
do {
playbin=gst_element_factory_make("playbin", "play");
g_object_set(G_OBJECT(p
我是新手(我还在学习),如果你们这些绝地大师能帮我解决我的问题和顾虑,我将不胜感激
我想使用Ninject,我有下面的代码,我想知道我的对象是否会得到正确的处理和垃圾收集
对于Ninject的默认瞬态作用域,我读到“生命周期不由内核管理(作用域对象为null),永远不会被释放。”
如果我想在生产中使用我的代码,特别是当我得到大量对我的WebApi(POST)的并发调用时,它会导致内存泄漏等问题吗
在这种情况下,Ninject的对象范围最好使用什么
顺便问一下,如果我没有像“kernel.Bind
我正在开发的3个Web服务使用Spring,SimpleMessageStore来存储消息。由于某种原因,它在生产环境中导致内存泄漏,我无法在较低的环境中复制它。我是spring集成的新手,需要帮助了解可能导致这种情况的原因
spring配置代码如下所示:
<!-- MESSAGE STORES -->
<bean id="monitoringHeaderRequestMsgStore" class="org.springframework.integration.sto
这是我在Ubuntu/JVM 1.7.0_75下的考试
一,。
线程每秒调用该函数的次数低于50000次:
void LoggerImp::jniLog{
forint i=0;ideleteLocalRefTcs;
}}
似乎没有内存泄漏
四,。
我让它更循环:
void LoggerImp::jniLog{
forint i=0;iFindClasscom/morefun/bi/sdk/UserInfo;
env->deleteLocalRefTcs;
}}
可怕的事情发生了,仍然有内存泄漏
我的电子应用程序有一些内存问题。
启动时,内存使用量约为120 MB。JS堆保持不变,为32MB。如果不在浏览器窗口中执行任何操作,任务管理器中渲染器的内存使用率将每秒增加约1 MB。在增加20MB之后,它似乎又下降了16左右(可能是GC)。但是将窗口打开几分钟会导致300MB内存的使用。所以某个地方有内存泄漏
由于JS堆大小从未改变,我假设节点进程内部存在漏洞,这一点我说得对吗?
如何分析electron/node进程中的内存使用情况?(因为chrome配置文件在这种情况下似乎没有帮助)
和我
为什么启用ARC时内存泄漏(以粗体突出显示)
我有手机
+(CustomCell*)cell
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
NSArray *nib =[[NSBundle mainBundle] loadNibNamed:@"CustomCell_iPhone" owner:self options:nil];
我正在用NVIDIA硬件在Ubuntu12.04上测试我的代码
没有实际的OpenCL处理发生;但我的初始化代码仍在运行。此代码调用clGetPlatformIDs。但是,Valgrind报告内存泄漏:
==2718== 8 bytes in 1 blocks are definitely lost in loss record 4 of 74
==2718== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-am
我正在尝试检查代码中的内存泄漏,valgrind显示了许多错误。因为我以前从未使用过valgrind,所以我需要帮助。
首先,我专注于默认的gtk调用。
按照编码,内存从mkbib.c的140行泄漏。但是140号线正好
gtk_init(&argc, &argv);
我用过
G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --tool=memcheck
--leak-check=full --leak-resolution
我注意到DirectXAPI(来自AMD的驱动程序)有一个问题。
如果我使用createBuffer()以增量大小创建d3d缓冲区,并在for循环中释放它,内存诊断工具会显示进程的私有字节大小不断增加。我认为这可能是因为GPU映射的系统内存从未被释放。顺便说一句,cpu堆大小是稳定的
对于1000次迭代,缓冲区大小从1kb到1000MB开始
使用创建缓冲区
D3D11_使用_暂存/D3D11_使用_动态
&D3D11_CPU_访问_写入
d3dbuffer.Release&d3dbuffer=n
我们正在使用:
SpringCloudStarter zuul:jar:1.2.6.0版本
spring boot starter web:jar:1.4.1.0版本
嵌入式tomcat版本:8.0.43
打开Jdk JRE 1.8.0_101
SpringCloudStarter eureka:jar:1.2.6.0版本
在zuul网关上运行负载测试后,我们观察到当前消耗的内存增加:
pcf指标:
在负载测试前后,我做了一次heapdump。我们注意到未收集对象的最大增长:
负载测试后的堆转
为什么堆会毫无理由地堆起来?如果你说使用gc,我仍然想知道为什么会上升?
这是我的密码:
public class GameCore extends ApplicationAdapter {
SpriteBatch batch;
Texture texture;
StopWatch sw = new StopWatch();
long current, held;
@Override
public void create() {
我们将spring cloud starter hystrix与spring cloud starter archaius一起使用,一旦战争解除,我们将无法停止archaius的PoolgConfiguration源线程。但春云始发者archaius在没有hystrix的情况下运行良好,一旦战争解除,线程就会停止 尝试在Spring应用程序关闭之前重置Hystrix
@EnableCircuitBreaker
@SpringBootApplication
public class Applica
我使用的是一个开源json解析器,但在编译它时,它会给我取消引用的警告
MyProject/Classes/SBJSON.m:403:13潜在的空解引用。根据“创建和返回N错误对象”中的编码标准,参数“error”可能为空
- (BOOL)scanValue:(NSObject **)o error:(NSError **)error
{
skipWhitespace(c);
switch (*c++) {
case '{':
return [self scanRest
G'day,我正在寻找某种工具或库,我可以使用Ada95来检查或报告当前运行时内存的使用情况
到目前为止,我运气不太好。我在这里是因为也许社区中有一个人遇到了这样的挑战,你可以有一个很好的方法来隔离Ada不断增长的内存使用。有点背景
程序相当稳定。就我所见,95%以上的用户使用固定数组和固定字符串,到目前为止没有显式内存分配(使用grep搜索)
我正在为打开/关闭文件输入日志消息。目前还不清楚还有什么可能消耗内存。是否有任何东西或库可以帮助跟踪此WAMPU
理想的情况下,一些可以“仪器”Ada将
我有一个ASAN指令化的“deamon”进程,它总是在我的系统中运行。我看到只有当进程退出时才会报告内存泄漏。我是否可以要求LSAN在不中断流程的情况下转储泄漏报告?是否有任何信号可以发送到process,以便它检测并转储泄漏?使用:
// Check for leaks now. This function behaves identically to the default
// end-of-process leak check. In particular, it will te
我正在用仪器运行一个非常基本的测试应用程序,它发现了很多内存泄漏!因为我知道苹果公司的人在向iTunes提交应用程序时会检查内存泄漏,所以我想调查一下这个问题
我的环境:在Mac OS X 10.6.6上使用MonoTouch 3.2.4开发MonoDevelop 2.4.2,目标是运行iOS 4.2.1的iPad
我的测试应用程序只是显示一个TableView,其中包含50个字符串的列表,并按它们的起始字母对它们进行分组
重现问题的步骤:使用MonoDevelop创建一个新的“基于iPad窗口
我问是因为
用JSON编码的方式来表示PID,以便与基于web的客户端进行消息交易,这似乎不是一个好方法,
因此,使用某种替代标识符(如序列号或时间戳)向客户机注册表示这些消息的进程会很方便
使用原子注册过程,并且
虽然名称在其进程终止时未注册,
Erlang VM中的原子不会被垃圾收集。
所以注册大量进程会消耗永远无法恢复的内存,对吗?或者取消注册名称也会清除原子吗?原子永远不会被清除,最终会耗尽原子
json中的PID有什么问题?你不能只用一根绳子吗
{
"pid": "<0.
一些较新的语言正在其编译器中实现ARC(Swift和Rust等)。据我所知,这实现了与运行时GC相同的功能(减轻了程序员手动解除分配的负担),同时大大提高了效率
我知道ARC可能会成为一个复杂的过程,但随着现代垃圾收集器的复杂性,实现ARC似乎不再复杂。然而,仍然有很多语言和框架使用GC进行内存管理,甚至针对系统编程的Go语言也使用GC
我真的不明白为什么GC比ARC更可取。我在这里遗漏了什么吗?这里涉及到一系列权衡,这是一个复杂的话题。不过,这里有几个大问题:
总承包商专业人员:
跟踪垃圾收
我使用Code::Blocks用C编写代码。据我所知,它结合了文本编辑器、编译器和调试器
我的担心是,在不使用< C++ >代码>函数的情况下,使用 MaloC/命令会导致内存泄漏,或者在每次从代码运行程序后:代码块:它自己会自行清理::Buffs/< P> > P >您是对的,CODBROCK是一个集成开发环境,但它不是C++运行时。它只与编译器集成,不能控制代码的执行
无论何时调用malloc,都必须调用free。执行代码的平台将在程序终止后回收泄漏的内存,但这不是代码块或操作系统的责任
在
我们有一个由GroovyShell/Groovy脚本引起的内存泄漏(请参阅最后的GroovyEvaluator代码)。主要问题有(从MAT分析仪复制粘贴):
由“”加载的类“java.beans.ThreadGroupContext”占用807406960(33.38%)字节
以及:
16例
“org.codehaus.groovy.reflection.ClassInfo$ClassInfo$Segment”,
由“sun.misc.Launcher$AppClassLoader@0x7004
我们使用Kafka构建了一个数据摄取管道。我们有一个消费者,他不断地从卡夫卡主题中读取内容并写入数据库。这些消费者吊舱遇到OOM事件问题。我们在K8上运行卡夫卡
我们现在看到,由于OOM错误,消费者吊舱每4-5天重新启动一次。我们正在使用卡夫卡java库的卡夫卡2.2版本
编译组:“org.apache.kafka”,名称:“kafka_2.12”,版本:“2.2.0”
编译组:“org.apache.kafka”,名称:“kafka客户端”,版本:“2.2.0”
以下是pod内jvm的统计信息
我正在学习塞萨里尼和汤普森的“Erlang编程”(O'Reilly),我提出了4-2的解决方案,但在使用它之后,有两个问题:
每次我运行go/3时,windows中的“werl.exe”都会消耗X个内存量。随后的每一次通话都会占用相同的金额,而且永远不会收回
如果我运行go(Message,10000,10),它会占用1.4GB内存并崩溃
我认为在我的第二个例子中,Erlang应该处理这个问题,从我所阅读的内容来看,没有问题,所以我猜我不知何故引入了内存泄漏?我阅读了关于内存泄漏和尾部递归的部分
当多次调用createtileonscreen时,我发现分配量一直在增加。你能告诉我怎么取消分配吗
myArray没有任何泄漏,并将其从超级视图中删除。myArray是如何定义的?它是一个实例变量,与之对应的是@propoEntry和@synthesis吗
应该是
- (void)createTileOnScreen:(CGRect)rect
{
myArray = [[NSMutableArray alloc] init];
CGRect bounds = re
在我的一个wp8应用程序中,我使用它来启用对转换器参数的绑定。我遇到的一个问题是,在参数上使用绑定的转换器之上(在XAML中)的任何转换器都不会得到GC'd。我注意到使用这种特定顺序的页面在导航到它时会获得越来越多的内存,然后返回并重复
在尝试弄清楚发生了什么之后,我决定尝试改变他们在XAML中的顺序,使用顶部的反射器制作一个,问题就解决了。我想知道是否有人能对此做出解释
当我遇到这个mem泄漏问题时,探查器在GC根下显示我的转换器都使用带有手柄(WeakRef)的反射器引用(而不是直接引用)转
CUDA C编程指南中指出:
全局函数参数传递给设备:
通过恒定内存,在计算能力为2.x及更高的设备上限制为4KB
考虑到常量内存有一个应用程序的生存期,如果一个应用程序中的内核被调用了数千次,我想知道每次内核完成后,函数参数是否会自动释放?常量内存有一个应用程序的生存期,但它可以更改(异步)来自主机代码。由于涉及缓存,缓存失效可能会有细微差别,但我认为这与您的问题无关
是的,用于内核调用参数的常量内存在内核调用结束时释放,并可用于后续内核调用
首先,一点背景。我正在尝试编写一个自动化测试,通过定期检查RAM使用情况来查找产品中的内存泄漏。为了找到解决这个问题的最佳方法,我决定使用PrivateMemorySize64和GC.GetTotalMemory,如下所示:
long memory;
long temp;
Process[] targetProcess = Process.GetProcessesByName(Path.GetFileNameWithoutExtension("(ProcessName).exe"));
在过去的几天里,我发表了两篇不同的帖子,内容是关于我们从XNA发展到MonoGame,以及应用程序在首次启动后如何增加内存,以及如何检测不到来自键盘的输入。
使用带有按钮的WinForms启动单游戏
private void button1_Click(object sender, EventArgs e)
{
viThread = new Thread(Demo);
viThread.Priority = ThreadPriority.Highes
我读过这个链接,但似乎没有给出最终答案
通过kmemleak扫描内存泄漏后。我可以导出未引用对象地址的结果,比如0xffff880060bb3060[在更新中]
我使用下面的gdb命令查看这个地址的位置。
注意:我在/sys/module/hello/session/.text中找到了.text_地址,其值为0xFFFFFFFF038C000
sudo insmod hello.ko
gdb hello.ko /proc/kcore
add-symbol-file hello.
对于一个关于内存泄漏的演示,我想展示一个程序,在这个程序中,内存泄漏可能很容易做到,并且会产生视觉效果;我怎么能这样做
我不想特别使用任何语言,即使我更喜欢C、java或Python
谢谢。这会导致系统内存泄漏
#include <stdio.h>
int main(void) {
// your code goes here
char *c;
for(;;)
c = (char*)malloc(sizeof(char));
return 0
我发现Sitecore CD实例服务器正在关闭,我有PROD server的内存转储,我想分析内存。您推荐使用的最佳工具是什么。试试看
还有其他工具,如DebugDiag和WinDbg
我正在开发一个定制的嵌入式Linux发行版,libc是glibc-2.22
如何在应用程序长时间自动运行时跟踪应用程序的内存分配/释放。glibc中是否有钩子可以在我的应用程序中每次发生分配/释放时生成日志
glibc中是否有钩子可以在我的应用程序中每次发生分配/释放时生成日志
不可以。在每次分配中写入日志将是非常困难的
成本太高(高性能malloc可以在不需要任何系统调用的情况下,通过几条10秒的指令分配内存)
大部分是无用的:通常你不只是想知道2000字节在哪里分配;您还想知道它们是从何处
1 2 3 4 5 6 ...
下一页 最后一页 共 18 页