내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
네이티브 컬렉션이 폐기되지 않아 메모리 누수가 발생했습니다. 다음에서 할당됨:
Unity.Collections.NativeArray1:.ctor(Byte[], 할당자)
UnityEngine.Networking.UploadHandlerRaw:.ctor(바이트[])
UnityEngine.Networking.UnityWebRequest:SetupPost(UnityWebRequest, WWWForm)
오류 전문은 위와 같습니다.
먼저 해결방법을 살펴보겠습니다
(var request = UnityWebRequest.Post(serverURL, "POST"))를 사용하여
(var uh = new UploadHandlerRaw(bodyRaw))를 사용하여
{
//요청.disposeUploadHandlerOnDispose = true;
//요청.disposeDownloadHandlerOnDispose = true;
//요청.인증서 처리기에서 Dispose = true;
요청.SetRequestHeader("콘텐츠 유형", "application/json;charset=utf-8");
항복 반환 요청.SendWebRequest();
}
두 가지 용도를 합치면 해결 가능
인터넷에서 많은 정보를 확인한 결과, 많은 사람들이 자신이 만든 업로더 핸들러가 공개되지 않아 메모리 누수가 발생했다고 말했습니다.
많은 분들이 이용하라고 하셔서
//요청.disposeUploadHandlerOnDispose = true;
//요청.disposeDownloadHandlerOnDispose = true;
//요청.인증서 처리기에서 Dispose = true;
이 세 가지를 설정하면 괜찮겠지만, 시도해 보니 효과가 이상적이지 않았습니다. Unity 자체의 문제 때문일 수도 있고, 변경 사항 때문일 수도 있습니다.
그러다가 업로드 핸들러를 수동으로 해제해도 괜찮을까 하는 생각이 들었습니다. 시도 해봐,
요청.업로드 핸들러.Dispose();
그 효과는 이상적이지 않습니다. 인터넷에서 한 노인이 생성자를 사용하여 생성하라고 말하는 것을 들었습니다.
byte[] bodyRaw = 인코딩.UTF8.GetBytes(데이터 보내기);
webRequest.uploadHandler = 새로운 UploadHandlerRaw(bodyRaw);
동일한 효과는 이상적이지 않습니다.
그럼 안으로
네이티브 컬렉션이 삭제되지 않아 메모리 누수가 발생했습니다. - Unity 포럼
해결 방법은 이 페이지 맨 아래에 있습니다. 고마워 친구. 오랫동안 나를 괴롭히던 문제를 해결했습니다.
다른 작가의 블로그에서 이 포럼을 발견했습니다.
https://blog.csdn.net/Miner_W/article/details/129400923
이 어르신께도 감사드립니다.