크롬에서 사용자 상호 작용 대기 시간을 측정하려고합니다. 키를 눌러 화면을 업데이트하는 시간입니다. 이 예에서는 새로운 내용으로 화면의 많은 부분을 다시 렌더링합니다. 네트워크 지연이 없습니다. 단지 HTML을 업데이트하는 것입니다.Chrome DevTools는 상호 작용의 반응을 어떻게 측정합니까?
아래의 스크린 샷에서 Chrome DevTools 키 다운 이벤트를 볼 수 있으며 많은 자바 스크립트가 실행 된 다음 페인팅, 합성 등이 번거롭고 keydown 이벤트 "응답"기간이 끝납니다.
크롬이 GPU와 새로운 화면에 새로운 렌더링을 작성한 경우 수평선이 vsync라고 가정하면 (이 줄이 어디에서 문서화되어 있는지 알 수 있습니까?) Devtools가 keydown 이벤트는 keydown에서 DOM 변이가 끝난 직후의 첫 번째 회색 선 바로 다음까지의 시간을 측정하므로 측정하려는 항목에 대한 좋은 근사치입니다.
나는 자바 스크립트에서 requestAnimationFrame, requestIdleCallback, 메시지 전달을 통한 setImmediate polyfill 및 위의 몇 가지 조합을 사용하여이 시간을 대략적으로 계산하는 다양한 방법을 시도했다. 모두가 순수한 자바 스크립트 시간보다 길어진 것처럼 보이지만 대부분 화면을 실제로 업데이트 할 시간을 과소 평가하거나 과대 평가합니다.
누구든지 프로덕션에서이 시간을 측정하는 더 좋은 방법을 알고 있습니까? Chrome DevTools 측정 항목은 어떻게 작동합니까? 전 완전히 다른 것을 측정해야합니까?
AFAIK 불가능합니다. https://crbug.com/694075 – wOxxOm
링크를 제공해 주셔서 감사합니다! 나는 여전히이 문제를 +/- 16ms (즉, 지금은이 문제를 무시할 수있는 경우)로 해결할 수 있는지 관심이 있습니다. –