웹 애플리케이션의 FPS 모니터링과 성능 최적화를 위한 경량 라이브러리
npm install fpskit실시간으로 FPS를 측정하고 모니터링할 수 있습니다.
import { startFpsMeter, stopFpsMeter } from "fpskit";
// FPS 측정 시작
startFpsMeter((fps) => {
console.log(`현재 FPS: ${fps}`);
});
// FPS 측정 중지
stopFpsMeter();requestAnimationFrame을 패치하여 특정 FPS로 제한할 수 있습니다.
import { enableRafPatch, disableRafPatch } from "fpskit";
// 30fps로 제한
enableRafPatch(30);
// 패치 해제 (네이티브로 복원)
disableRafPatch();import { startFpsMeter, stopFpsMeter } from "fpskit";
// FPS 표시용 엘리먼트
const fpsDisplay = document.getElementById("fps-counter");
startFpsMeter((fps) => {
fpsDisplay.textContent = `FPS: ${fps}`;
});
// 10초 후 모니터링 중지
setTimeout(() => {
stopFpsMeter();
}, 10000);완전한 타입 지원으로 안전한 개발이 가능합니다.
import { startFpsMeter, enableRafPatch } from "fpskit";
interface PerformanceConfig {
targetFps: number;
monitoring: boolean;
}
const config: PerformanceConfig = {
targetFps: 60,
monitoring: true,
};
if (config.monitoring) {
startFpsMeter((fps: number) => {
if (fps < config.targetFps * 0.8) {
console.warn(`성능 저하 감지: ${fps}fps`);
}
});
}- FPS 측정을 시작합니다
listener: FPS 값이 업데이트될 때 호출되는 콜백 (선택사항)
- FPS 측정을 중지합니다
- 지정된 FPS로
requestAnimationFrame을 제한합니다 fps: 목표 FPS 값
- RAF 패치를 비활성화하고 네이티브 동작으로 복원합니다
enableRafPatch()는 전역requestAnimationFrame동작을 변경합니다- 애플리케이션 전체의 애니메이션 타이밍이 영향을 받습니다
- 개발/테스트 환경에서만 사용하거나, 사용자가 직접 제어할 수 있도록 구현하세요
- Chrome 24+
- Firefox 23+
- Safari 6.1+
- Edge 12+
MIT
만든이: oyc0401