Vinyl's Log

이야기를 만드는 도구를 만들고,
그 도구로 이야기를 만듭니다.

도구를 만드는 개발 기록과, 만드는 사람의 일상.

  1. 01만든다

    이야기를 뽑아내는 생성기를 직접 만듭니다.

    horror-story-generator
  2. 02기록한다

    만들다 깨진 것, 틀린 판단, 되돌린 결론을 남깁니다.

    DevTech 38편

최근

카테고리를 가리지 않고 최근에 올린 것

전체 보기

워커 수가 달라도 같은 전투가 나오는 시드 설계, 그런데 엔진을 바꾸자 같은 판이 66초에서 55초가 됐다

티렉스 대 호랑이 시뮬레이터는 판마다 난수 시드를 판 번호에서 만들어, 워커를 1개로 돌리든 8개로 돌리든 같은 결과를 냅니다. 워커 6가지 분할과 청크 역순 처리를 클래식 1개, 자유 대전 4개 설정에 적용해 한 엔진 안에서는 해시가 모두 같았습니다. 같은 코드를 V8과 JavaScriptCore(Bun)에서 돌리면 정수 난수열과 설계 행렬은 같고 판 결과는 갈렸습니다. 모델 문서가 이미 원인으로 적은 sin·cos·atan2·log를 사칙연산으로 바꾸자 두 엔진이 일치했고, 예외로 적힌 Math.hypot은 이 설정들에서 더하는 것이 없었습니다.

Pretendard 대체 글꼴을 실측해 레이아웃 이동 0.406을 0.002로 줄였는데 70ch가 다시 늘렸다

Pretendard를 font-display: swap으로 불러오는 사이트에서 첫 방문의 레이아웃 이동을 줄인 기록입니다. Canvas TextMetrics로 잰 글자 폭과 높이로 size-adjust와 ascent-override를 맞춰 12개 페이지·화면 조합의 이동 합계를 0.406에서 0.002로 낮췄고, 합성 볼드가 남긴 0.066은 굵은 면을 따로 선언해 없앴습니다. 에이전트가 글을 준비하며 다시 재 보니, 같은 PR에 들어간 max-width: 70ch가 1366px 화면의 합계를 0.05대로 다시 키워 놓았습니다.

Workers 무료 플랜의 10ms 한도 앞에서 몬테카를로를 브라우저로 옮겼고, 한 판의 CPU 시간은 나중에 쟀다

티렉스 10마리와 호랑이 100마리를 500번 싸우게 하는 기본 시나리오는 한 판의 CPU 시간이 Workers 무료 플랜의 요청당 한도 10ms를 넘을 것으로 보고 킥오프에서 서버 계산을 뺐습니다. 실제 숫자는 엔진이 생긴 뒤의 성능 조사에서 나왔고, 기록마다 달랐습니다. 계산을 방문자 브라우저의 Web Worker 풀로 옮긴 구조와 워커를 코어 수만큼 띄웠다가 하나 줄인 수정, 같은 사양의 VM에서 다시 잰 판당 시간과 워커 수별 메인 스레드 정지를 정리했습니다.

DevTech

도구와 프로젝트를 만들고 고치는 기록

전체 보기

워커 수가 달라도 같은 전투가 나오는 시드 설계, 그런데 엔진을 바꾸자 같은 판이 66초에서 55초가 됐다

티렉스 대 호랑이 시뮬레이터는 판마다 난수 시드를 판 번호에서 만들어, 워커를 1개로 돌리든 8개로 돌리든 같은 결과를 냅니다. 워커 6가지 분할과 청크 역순 처리를 클래식 1개, 자유 대전 4개 설정에 적용해 한 엔진 안에서는 해시가 모두 같았습니다. 같은 코드를 V8과 JavaScriptCore(Bun)에서 돌리면 정수 난수열과 설계 행렬은 같고 판 결과는 갈렸습니다. 모델 문서가 이미 원인으로 적은 sin·cos·atan2·log를 사칙연산으로 바꾸자 두 엔진이 일치했고, 예외로 적힌 Math.hypot은 이 설정들에서 더하는 것이 없었습니다.

Pretendard 대체 글꼴을 실측해 레이아웃 이동 0.406을 0.002로 줄였는데 70ch가 다시 늘렸다

Pretendard를 font-display: swap으로 불러오는 사이트에서 첫 방문의 레이아웃 이동을 줄인 기록입니다. Canvas TextMetrics로 잰 글자 폭과 높이로 size-adjust와 ascent-override를 맞춰 12개 페이지·화면 조합의 이동 합계를 0.406에서 0.002로 낮췄고, 합성 볼드가 남긴 0.066은 굵은 면을 따로 선언해 없앴습니다. 에이전트가 글을 준비하며 다시 재 보니, 같은 PR에 들어간 max-width: 70ch가 1366px 화면의 합계를 0.05대로 다시 키워 놓았습니다.

Workers 무료 플랜의 10ms 한도 앞에서 몬테카를로를 브라우저로 옮겼고, 한 판의 CPU 시간은 나중에 쟀다

티렉스 10마리와 호랑이 100마리를 500번 싸우게 하는 기본 시나리오는 한 판의 CPU 시간이 Workers 무료 플랜의 요청당 한도 10ms를 넘을 것으로 보고 킥오프에서 서버 계산을 뺐습니다. 실제 숫자는 엔진이 생긴 뒤의 성능 조사에서 나왔고, 기록마다 달랐습니다. 계산을 방문자 브라우저의 Web Worker 풀로 옮긴 구조와 워커를 코어 수만큼 띄웠다가 하나 줄인 수정, 같은 사양의 VM에서 다시 잰 판당 시간과 워커 수별 메인 스레드 정지를 정리했습니다.

Life

만드는 사람의 기록

전체 보기