关于“A Native Collection has not been disposed, resulting in a memory leak. Enabl”问题
项目场景:
提示:这里简述项目相关背景:
例如:当在进行UnityWebRequest
请求数据时候,打印就报错显示“A Native Collection has not been disposed, resulting in a memory leak. Enabl
”,但不能定位错误的地方在哪,于是百度也没有明确答案,然后摸索一番,后面是老大告诉我的,记录一下;
问题描述
提示:这里描述项目中遇到的问题:
例如:数据请求提交过程中,UnityWebRequest
不时出现数据没有释放的情况,偶尔会一部分数据
内存溢出情况:
IEnumerator Post(string url, string data, Action<string, bool> callback)
{UnityWebRequest post = UnityWebRequest.Post(url, "POST");if (!string.IsNullOrEmpty(data)){post.uploadHandler = (UploadHandler)new UploadHandlerRaw(Encoding.UTF8.GetBytes(data));}post.SetRequestHeader("Content-Type", "application/json");//根据个API需求定义请求头yield return post.SendWebRequest();if (post.result == UnityWebRequest.Result.Success){callback?.Invoke(post.downloadHandler.text, true);}else{callback?.Invoke(post.error, false);Debug.LogError($"{post.error}:{transform}");}
}
原因分析:
提示:这里填写问题的分析:
这个通常都是直接使用了Nativearray
过时没有释放就会报这个错
使用NativeArray
的时候最好前面加 Using
,或者结束时显示释放
Using(){.....
}
显式释放
解决方案:
提示:这里填写该问题的具体解决方案:
在代码块前面加上using
IEnumerator Post(string url, string data, Action<string, bool> callback)
{using UnityWebRequest post = UnityWebRequest.Post(url, "POST");if (!string.IsNullOrEmpty(data)){post.uploadHandler = (UploadHandler)new UploadHandlerRaw(Encoding.UTF8.GetBytes(data));}post.SetRequestHeader("Content-Type", "application/json");//根据个API需求定义请求头yield return post.SendWebRequest();if (post.result == UnityWebRequest.Result.Success){callback?.Invoke(post.downloadHandler.text, true);}else{callback?.Invoke(post.error, false);Debug.LogError($"{post.error}:{transform}");}
}
这样貌似就没有显示过了,除了这请求地方,其他地方还需要注意一下,目前只发现这个地方会有类似情况,有什么错误的,还希望各位大佬指出一下。
关于“A Native Collection has not been disposed, resulting in a memory leak. Enabl”问题相关推荐
- A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to ge
A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to ge ...
- [已解决]Unity使用WebRequest过程中发生内存问题A Native Collection has not been disposed
问题背景 Unity版本:2021.3.16 在用Unity做一个文字识别的应用,方案是用UnityWebRequest把图片发送给web api,但在发送一定时间后Unity会报错. (具体堆栈信息 ...
- Android系统(31)--- 如何分析native memory leak
如何分析native memory leak 分析native程序发生内存泄漏问题,就需要对每一笔内存申请做记录,释放内存时清除记录,然后在认为存在内存泄漏时将记录提取出来分析,看看在哪段代码存在申请 ...
- Android 系统(30)---如何用DDMS分析native memory leak
native程序如果发生内存问题,一般都比较难查,幸好DDMS有集成native memory leak(仅仅针对app,无法分析mediaserver等非app的进程)功能,通过DDMS可以观察na ...
- Native崩溃说明 so库崩溃、SIGBUS(bad memory access) 和 SIGSEGV(Invalid memory reference)
参考:友盟 : Native崩溃说明 一.概念说明 在应用崩溃的时候,我们将会获取到两个信息: signal: 信号量,下文将会详细的说明不同的信号量及其含义 code: 错误码, 除了几个所有信号量 ...
- Android native heap memory leak 实战(二) --- DDMS
一. 手机端准备工作 1. 安装库文件 所有的 native 内存分配函数 ( malloc , calloc , etc.) 都在 Android 的 libc 库中.为了跟踪堆内存 ...
- java中的垃圾收集器_Java中的垃圾收集
java中的垃圾收集器 Garbage collection in java is one of the advance topic. Java GC knowledge helps us in fi ...
- 使用LeakTracer检测android NDK C/C++代码中的memory leak
Memory issue是C/C++开发中比较常遇到,经常带给人比较大困扰,debug起来又常常让人无从下手的一类问题,memory issue主要又分为memory leak,野指针,及其它非法访问 ...
- STL源码剖析 迭代器iterator的概念 和 traits编程技法
iterator模式定义如下:提供一种方法,使之能够依序巡访某个 聚合物(容器)所含的各个元素,而又无需暴露该聚合物的内部表述方式. STL的中心思想在于:将数据容器(containers)和算法(a ...
最新文章
- 信息安全的一些东西,初步查询了解!
- 乏善可陈的Neuralink
- ndk use of undeclared identifier #39malloc#39
- ubuntu/debian/centos/rhel使用镜像源一键安装gitlab-ce服务
- 深入浅出设计模式原则之单一原则(SRP)
- 每周一个 Python 模块 | hashlib
- arcgis js 4.x 地图中加入图片
- 中等数学类杂志投稿信箱
- linux 系统维护的几样工具
- MacBook运行C++,不用安装任何软件
- UML统一建模语言简介
- ICMP协议与ping
- 相遇在这茫茫的网海里。你在天涯,我在海角
- redis-----简单介绍---基本的配置---持久化----学习笔记
- Android设备实现语音视频通话
- linux下cuda cudnn安装 没有权限的安装
- python 步数_用python如何修改微信和支付宝每天走路的步数
- 中文停用词库,不用C币直接复制
- 西门子s7-1200博图v16灌装机PLC程序+西门子KTP1200触摸屏程序 1200plc和3台v90伺服pn通讯
- 记录搭建分布式项目环境-MySQL集群