한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Buku Putih Lag Game › L1 Proses game di klien

Kebocoran memori di klien Client memory leak

ID penyebab cg-leak · Penanggung jawab utama Pengembangan klien (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Makin lama game menyala, makin besar memori yang dipakai sehingga game makin lambat dan akhirnya tertutup paksa.

Mengapa Tekstur, UI, dan efek tidak dilepas saat berpindah area bolak-balik → Akibatnya GC makin sering berjalan dan memori OS kurang sehingga terjadi swap → Di layar Setelah beberapa jam bermain, game makin patah-patah lalu tertutup paksa (bagi pemain terlihat seperti disconnect)

Gejala
Patah-patah, Disconnect
Faktor
Stall
Siapa yang mengalami
Hanya saya
Kapan
Makin lama menyala
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game)
Tugas Tim Pengembang Game
Ukur pemakaian memori saat berpindah area, cari dan perbaiki tekstur, UI, dan efek yang tidak dilepas, jalankan tes otomatis jangka panjang (soak test).
Di grafik
Naik perlahan · Memori proses game
Yang diperiksa
Rekam Process(game)\Private Bytes selama beberapa jam dengan Performance Monitor. Untuk mobile, periksa alasan penutupan di ApplicationExitInfo Android (REASON_LOW_MEMORY) dan laporan jetsam iOS
Cocok jika
Memori naik setiap kali berpindah area dan tidak turun lagi, dan makin lama game menyala, makin sering patah-patah dan tertutup paksa
Tidak cocok jika
Memori stabil, tetapi makin lama game menyala hanya getarannya yang makin parah: lebih mungkin “Hilangnya presisi waktu bertipe float”
Sarana pemeriksaan
Lingkungan pemain sendiri
Pelajari lebih lanjut
Ponsel umumnya bertahan dengan mengompresi memori. Jika memori tetap kurang, OS langsung menutup game (terlempar keluar). Makin kecil RAM perangkat, makin cepat game ditutup.

Sumber

  1. Memory allocation among processes Android (Google)
    Android bertahan dengan mengompresi memori ke zRAM, dan jika tetap kurang, low memory killer menutup proses; jika aplikasi yang sedang tampil di depan ditutup, terlihat seperti crash
  2. Identifying high-memory use with jetsam event reports Apple
    iOS menutup paksa aplikasi (jetsam) jika tekanan memori tidak mereda, dan aplikasi yang melewati batas memorinya menjadi sasaran penutupan
  3. Find user-mode memory leaks with Performance Monitor (PerfMon) Microsoft
    Rekam Process > Private Bytes (memori privat yang dialokasikan proses) dan Virtual Bytes dalam waktu lama; jika terus naik, berarti ada kebocoran
  4. ApplicationExitInfo Android (Google)
    REASON_LOW_MEMORY: low memory killer sistem menutup proses aplikasi (perangkat yang tidak mendukungnya melaporkannya sebagai REASON_SIGNALED dengan SIGKILL)

Lihat juga

Lapisan yang sama: L1 Proses game di klien

Penyebab di lapisan lain dengan gejala yang sama (Patah-patah)

Lihat kartu interaktif dengan gambar dan simulasi