Berbagi teknologi

Unity 报错 A Native Collection belum dibuang, mengakibatkan kebocoran memori.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Koleksi Asli belum dibuang, sehingga terjadi kebocoran memori. Dialokasikan dari:
Unity.Collections.NativeArray1:.ctor(Byte[], Pengalokasi)
UnityEngine.Jaringan.UploadHandlerRaw:.ctor(Byte[])
UnityEngine.Jaringan.UnityWebRequest:SetupPost(UnityWebRequest, WWWForm)

Teks lengkap kesalahannya adalah seperti di atas

Mari kita lihat solusinya terlebih dahulu

menggunakan (var permintaan = UnityWebRequest.Post(serverURL, "POST"))
menggunakan (var uh = new UploadHandlerRaw(bodyRaw))
        {
//request.disposeUploadHandlerOnDispose = benar;
//request.disposeDownloadHandlerOnDispose = benar;
//request.disposeCertificateHandlerOnDispose = benar;
request.SetRequestHeader("Jenis-Konten", "aplikasi/json;charset=utf-8");
hasil pengembalian permintaan.SendWebRequest();
        }

Hal ini dapat diselesaikan dengan menggabungkan dua kegunaan

Setelah mengecek banyak informasi di Internet, banyak orang yang mengatakan bahwa uploaderhandler yang mereka buat tidak dirilis sehingga menyebabkan kebocoran memori.

Banyak orang mengatakan untuk menggunakan

//request.disposeUploadHandlerOnDispose = benar;
//request.disposeDownloadHandlerOnDispose = benar;
//request.disposeCertificateHandlerOnDispose = benar;

Tidak apa-apa jika Anda mengatur ketiganya, tetapi saya mencobanya dan efeknya tidak ideal. Mungkin karena masalah dengan Unity itu sendiri, atau mungkin karena perubahan.

Lalu saya berpikir, apakah boleh melepaskan uploadhandler secara manual? Cobalah,

permintaan.uploadHandler.Buang();

Efeknya tidak ideal. Saya bahkan mendengar orang tua di Internet mengatakan untuk menggunakan konstruktor untuk membuatnya.

byte[] bodyRaw = Encoding.UTF8.GetBytes(kirim_data);
webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

Efek yang sama tidaklah ideal.

lalu masuk

Koleksi Asli belum dihapus, sehingga terjadi kebocoran memori. - Forum Unity

Solusinya ada di bagian paling bawah halaman ini. Terima kasih kawan. Memecahkan masalah yang telah lama mengganggu saya.

Saya menemukan forum ini di blog penulis lain.

https://blog.csdn.net/Miner_W/artikel/detail/129400923

Terima kasih juga kepada orang tua ini.