EgretEngine의 소형 패닉 조사
5620 단어 EgretEngine
Update의 비용 측정 및 출력 로그
index.html
에서 60FPS로 설정했기 때문에 조사는 초당 60회enterFrame
의 처리 원가를 호출해야 한다.Main.ts
this.addEventListener(egret.Event.ENTER_FRAME, this.enterFrame, this);
private enterFrame(t: number): boolean {
const start = performance.now();
:
const cost = performance.now() - start;
if (200 < cost) {
egret.log(`Cost over: ${cost}`);
}
return true;
}
비용 소모 처리 없음Update 이외의 비용 측정 및 로그 내보내기
Main.ts
private enterFrame(t: number): boolean {
const start = performance.now();
if (this.lastCalled !== -1) {
const otherCost = start - this.lastCalled;
if (100 < otherCost) {
egret.log(`Other cost over: ${otherCost}`);
}
}
:
const end = performance.now();
const cost = end - start;
if (100 < cost) {
egret.log(`Cost over: ${cost}`);
}
this.lastCalled = end;
return true;
}
그러면 역시 이런 느낌.이렇게 생각하면!
50FPS면 20ms 전부 틀렸어 수정된 건 이쪽이야
https://github.com/liberapp-inc/h5g-qiita-jump-and-run/commit/c1df90e2edd3128baec2f52dfd743fb679583fe0
그러고 보니 20ms의 긴박감이 있었고 간혹 처리되기도 했다
결론
원인은 아직 밝혀지지 않았지만, 단순히 업데이트 내부 처리가 무거운 것은 아닌 것 같다는 말
Reference
이 문제에 관하여(EgretEngine의 소형 패닉 조사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/motoyasu-yamada/items/7a7032956808bc738367텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)