Skip to content
isdnetworks
Go back

도구는 껐고 규칙은 남은 상태

여러 조합을 비교하는 측정을 돌리면서 공정한 비교를 위해 부수 기능을 전부 껐다. 그런데 결과에 지정하지 않은 항목의 사용량이 섞여 있었다.

Table of contents

Open Table of contents

껐다고 생각한 것

옵션으로 도구를 비우고 동적으로 붙는 부분도 제외했다. 그 두 가지면 전부 꺼졌다고 봤다.

결과를 보니 쓰지 않기로 한 것이 쓰이고 있었다. 껐다고 생각한 것과 실제로 꺼진 것이 달랐다는 뜻이다.

첫 가설을 문서로 기각

처음에는 내용에 따라 자동으로 다른 것으로 전환되는 기능이 있는 것으로 봤다. 말은 됐지만 근거는 없었다.

공식 문서와 대조하니 그런 전환은 없었고 조건도 대상도 서술과 안 맞았다. 가설을 기각하고 데이터를 다시 봤다.

설정에 비례한 패턴

다시 보니 패턴이 둘이었는데 하나는 모든 조합에 항상 있는 보조 호출이었다. 상시 존재하므로 그것은 경로상 늘 거치는 것이었다.

다른 하나가 단서였는데 예상 밖 사용량이 설정 수준을 올릴수록 커졌다. 경로 문제라면 설정과 무관해야 하므로 설정이 높을 때 무언가가 더 일어난다는 뜻이었다.

규칙은 안 꺼졌다

설정에 따라 더 일어나는 것이 무엇인지 찾다가 전역 규칙 파일에 닿았다. 접근을 확정하기 전과 완료를 보고하기 전에 검토를 받는다는 항목이 있었고 그 검토는 상위 수단으로 하게 돼 있었다.

도구를 비우는 옵션과 동적 부분을 제외하는 옵션 어느 것도 규칙 파일은 빼지 않았다. 규칙이 살아 있으니 하위 프로세스가 그대로 검토를 수행했고 설정이 높을수록 그 단계까지 진행해서 비례가 나타난 것이었다.

측정의 한계를 명시

영향을 세어 보니 비용이 몇 배로 뛰고 시간도 배가 됐다. 조합별 성능을 재려던 측정에 규칙 수행 여부가 섞였으므로 두 변수가 교락된 상태였다.

규칙 파일을 제외하는 별도 수단이 없어서 이 도구로는 순수 비교가 안 됐다. 그래서 조합별 결과를 결론으로 적지 않고 규칙이 섞여 순수 비교가 아니며 별도 제외 수단이 필요하다고 적었다.

자동 실행에서도 같은 일이 일어나 조용히 비용이 늘어난다는 것을 함께 남겼다. 끄는 옵션이 있는 것과 없는 것을 구분하지 않으면 그 차이가 결과에 그대로 들어온다.

정리


Share this post on:

Previous Post
엉뚱한 곳을 고치던 성능 조사
Next Post
로그 문구가 어느 단계인지 알려준다