Kui viga ilmub pärast korduvat SPA navigeerimist, kontrolli ressursside ja renderdaja elutsüklit. Stseeni objekti eemaldamine ei vabasta automaatselt kõiki geomeetriaid, materjale ja tekstuure. Samas ei tõesta context lost üksinda mäluleket. 13
Korda sama liikumist
Ava 3D-vaade, lahku sellest ning korda seda mitu korda. Jälgi, kas juurde jäävad renderdajad, sündmusekuulajad või animatsioonitsüklid. renderer.info aitab jälgida ressursside arvu, kuid see ei ole täpne kogu GPU mälukulu mõõtur. 1
Korista omanikupõhiselt
Vaate lõpetamisel peata selle renderdustsükkel ja eemalda selle enda kuulajad. Vabasta ressursid, mida enam ei kasutata. Tekstuurid vajavad eraldi käsitlemist: materjali vabastamine ei tähenda kõigi selle tekstuuride vabastamist. 12
Ära vabasta pimesi ühiseid ressursse, mida järgmine vaade veel kasutab. Planeeri, kas renderdaja on kogu rakenduse ühine ressurss või konkreetse vaate oma. Mõlemal juhul peab omanik olema selge.
Valmista ette veaolukord
Kuula vajaduse korral webglcontextlost sündmust ja näita arusaadavat varuvaadet. Taastamine vajab rakenduses teadlikku käsitlemist; kasutaja ei peaks jääma tühja lõuendi ette. 3
Kui ressursside arv kordustel stabiliseerub, uuri edasi seadme ja draiveri käitumist. Ära nimeta iga kontekstikaotust automaatselt Three.js-i veaks või tõendatud mälulekkeks.
Seotud lugemine
3D-portfoolio tehniline kirjeldus inglise keeles