diff options
| author | eunhhu <[email protected]> | 2026-09-30 18:38:18 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-30 18:38:18 +0100 |
| commit | 2168466cc9302ce95a5f3381f6c663ca4c180a28 (patch) | |
| tree | 3d8f6b8504b1558b5d9b963f95ca59335ed377ca /docs/research | |
| parent | d5b3fe85d7da3131b315410e316d8abe95dab61e (diff) | |
| download | pure-2168466cc9302ce95a5f3381f6c663ca4c180a28.tar.gz pure-2168466cc9302ce95a5f3381f6c663ca4c180a28.zip | |
Measure 07047c3 again on a quiet Pi (110)
The six pairs rerun once the Pi had been quiet for a minute, on the same
binaries. Two pairs were still interfered (the first's before at an
owner share of 0.54, the sixth at 0.73 on both sides); the four clean
ones are -1.7%, -0.4%, +1.8% and +1.1%, CPU per transaction 43.25 to
42.9 us. The bank's queries are as fast or faster after, though the
interference fell more on the before runs; the instruction counts stay
the comparison to trust.
Diffstat (limited to 'docs/research')
| -rw-r--r-- | docs/research/110-counting-instead-of-timing.md | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/docs/research/110-counting-instead-of-timing.md b/docs/research/110-counting-instead-of-timing.md index c84a06c..86fa5f5 100644 --- a/docs/research/110-counting-instead-of-timing.md +++ b/docs/research/110-counting-instead-of-timing.md @@ -86,12 +86,29 @@ `cell_at`이 따로 불리는 함수로 나타난다(0% → 2.98%). 전에는 `pure_list_get` 안에 인라인되어 있었다. 기계어로 보면 칸의 종류를 묻는 검사가 `cbz` 하나에서 네 명령이 되며 커졌다. 고친 뒤(`fcc1f67`)에는 다시 0%다. -**고친 뒤의 여섯 쌍**(`fcc1f67-interfered`). 둘째 라운드부터 다른 세션의 빌드가 부하 평균을 4–12로 올렸다. 소유자의 코어 몫이 -0.55–0.89로 떨어졌고, 쌍마다 −29%에서 +80%까지 흔들린다. 판정에 쓰지 않는다. 지우지 않고 남긴다. +**고친 뒤의 여섯 쌍.** 처음 잰 것(`fcc1f67-interfered`)은 둘째 라운드부터 다른 세션의 빌드가 부하 평균을 4–12로 올렸다. 소유자의 +코어 몫이 0.55–0.89로 떨어졌고, 쌍마다 −29%에서 +80%까지 흔들린다. 판정에 쓰지 않는다. 지우지 않고 남긴다. + +Pi가 1분 넘게 조용해졌을 때 같은 바이너리로 다시 쟀다(`fcc1f67`, 부하 평균은 0.3에서 시작해 1.4–3.9로 올랐다). + +| 쌍 | 초당 거래(전 → 후) | 거래당 CPU(µs) | 소유자의 코어 몫 | +|---|---:|---:|---:| +| 1 | 17,749 → 43,659 | 62.1 → 42.9 | 0.54 → 0.90 (전이 방해받음) | +| 2 | 44,346 → 43,576 (−1.7%) | 43.0 → 43.6 | 0.90 → 0.90 | +| 3 | 44,382 → 44,206 (−0.4%) | 43.1 → 42.6 | 0.91 → 0.91 | +| 4 | 43,832 → 44,604 (+1.8%) | 43.4 → 42.7 | 0.90 → 0.91 | +| 5 | 43,447 → 43,905 (+1.1%) | 43.7 → 43.1 | 0.90 → 0.90 | +| 6 | 31,885 → 32,117 (+0.7%) | 47.7 → 47.1 | 0.73 → 0.73 (둘 다 방해받음) | + +여섯 쌍의 중앙값은 43,640 → 43,782(+0.3%)다. 깨끗한 네 쌍(2–5)의 거래당 CPU는 43.25 → 42.9 µs(−0.8%)다. 은행 질의의 +중앙값은 모두 후가 같거나 빠르다(`ranks` 6.84 → 6.80, `per_branch` 5.37 → 5.21, `large` 0.40 → 0.39, `in_credit` 1.00 → +0.85). 다만 방해가 전의 실행에 더 걸렸다(첫 라운드의 전, `in_credit`의 전 셋). 그래서 빠른 쪽으로 기운 숫자다. 이 비교에서는 +명령 수가 더 믿을 만하다. ## 판정 -- **016의 2단계는 들어간다.** 기준을 채웠다(`fc65d66`의 여섯 쌍). 고친 뒤(`fcc1f67`)는 수의 경로에서 그보다 명령이 적다. +- **016의 2단계는 들어간다.** 기준을 채웠다(`fc65d66`의 여섯 쌍). 고친 뒤(`fcc1f67`)는 수의 경로에서 그보다 명령이 적고, + 시간으로도 전과 가려지지 않는다(깨끗한 네 쌍 −1.7%에서 +1.8%). - **남은 것**은 명령 +0.4%에서 +1.4%다. 여러 함수에 한두 명령씩 흩어져 있다. 칸의 종류 검사(`text` 표시 한 바이트에서 종류 번호의 비교로), 커진 `run`의 새 경우들이다. 사이클로는 전과 가려지지 않는다. |
