Reading Hash Allocation - kimjooyoon/meta-ontology-go GitHub Wiki

๋ฐ˜๋ณต ํŒŒ์ผ ํ™•์ธ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋น„์šฉ ์ฝ๊ธฐ

2026-10-04 KST. ๊ฐœ๋ฐœ #1196์˜ ๊นจ๋—ํ•œ ํ›„๋ณด 08f2d813์—์„œ ์ด์ „ main 041c8bbf์™€ ๋น„๊ตํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ #1196ยทmain #1197์€ ๊ฐ๊ฐ ํ•„์ˆ˜ ์—ฌ์„ฏ ๊ฒ€์‚ฌยท๋…๋ฆฝ ์ฆ๊ฑฐ ๊ฒ€์ฆ ๋’ค ์ •์ƒ ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊นจ๋—ํ•œ main 93c6463d๋ฅผ Go1.27.1๋กœ ๋นŒ๋“œยท์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์ง€๋‚˜

์‹คํ–‰๊ธฐ๋Š” ์ฒ˜์Œ ํ•„์š”ํ•  ๋•Œ 32KiB ๋ฐฐ์—ด์„ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๋‹ค์Œ ํŒŒ์ผ ํ•ด์‹œ์—๋„ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์‹คํ–‰๊ธฐ๊ฐ€ ์ž๊ธฐ ์ฐจ๋ก€์— ๋นŒ๋ ค ์“ฐ๋Š” ์ž‘์€ ์ž‘์—…๋Œ€์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰๊ธฐ๊ฐ€ ๋‹ซํžˆ๊ฑฐ๋‚˜ ์š”์ฒญ์ด ์ทจ์†Œ๋˜๋ฉด ๋ฐฐ์—ด ์ฐธ์กฐ๋ฅผ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค. Go ๊ณต๊ตฌ์™€ ๋ฐ”๋”” ์‹คํ–‰ํŒŒ์ผ ์ „์ฒด๋Š” ํ˜„์žฌ ๋ฐ”์ดํŠธ๋ฅผ ๊ณ„์† ์ฝ์œผ๋ฉฐ, ๋‘ ์‹ค์ œ ์‹คํ–‰๋„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ ํฌ๊ธฐ๋Š” 256MiB๊นŒ์ง€ ํ—ˆ์šฉํ•˜๊ณ  ์‹ค์ œ ์ฝ๊ธฐ๋„ ํ•œ ๋ฐ”์ดํŠธ์˜ ์ดˆ๊ณผ ๊ฐ์ง€๋ฅผ ํฌํ•จํ•ด ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ฝ์€ ๊ธธ์ด๊ฐ€ ์ฒ˜์Œ ํฌ๊ธฐ์™€ ๋‹ฌ๋ผ์ง€๋ฉด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์—ด๋ฆฐ ํŒŒ์ผ์˜ ๋‚ด์šฉ๊ณผ ๊ธธ์ด๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฒ”์œ„์ด๋ฉฐ, ํŒŒ์ผ์‹œ์Šคํ…œ ์ „์ฒด๋ฅผ ์›์ž์ ์œผ๋กœ ๊ณ ์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--timing์˜ ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š์€ ๋‹จ๊ณ„๋Š” unobserved๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ฒซ ์‹คํ–‰๋งŒ ๋๋‚œ ๊ฒฝ์šฐ์—๋„ ๋‘ ์‹คํ–‰์˜ ํ•ฉ๊ณ„๋Š” unobserved์ด๊ณ , JSON์—๋Š” ๊ด€์ธกํ•œ ๊ฐ ์‹คํ–‰์ด ๋‚จ์Šต๋‹ˆ๋‹ค. ๊ด€์ธกํ•œ 0์€ 0.000ms์ž…๋‹ˆ๋‹ค. ์‹คํŒจํ•œ ๋‹จ๊ณ„๊ฐ€ ๋ฌด๋ฃŒ๋กœ ์‹คํ–‰๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์ฝํžˆ๋Š” ํ˜ผ๋™์„ ์ค„์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ๊ณ„ ๊ธฐ๋ก์˜ ์‚ฌ์šฉ๋ฒ•.

ํ™•์ธํ•œ ์ˆซ์ž

๋จผ์ € ๋‘ ์‹คํ–‰ํŒŒ์ผ๊ณผ ์—ฌ์„ฏ ๋ณต์‚ฌ ๋ฐฉ์‹์œผ๋กœ 192ํšŒ ํ•ด์‹œํ•ด ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ–ˆ์Šต๋‹ˆ๋‹ค. ํฐ ๋ฒ„ํผ๋กœ ๊ณต๊ตฌ ํ•ด์‹œ๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ๋นจ๋ผ์ง€์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ฎ์€ ๋ณด๊ด€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์œ„ํ•ด 32KiB๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„์˜ 1MiB ํŒŒ์ผ ๋ฐ˜๋ณต ๋ฒค์น˜๋งˆํฌ์—์„œ ํ˜ธ์ถœ๋‹น ํ• ๋‹น์€ ์•ฝ 33.5kB โ†’ 0.8kB, ํšŸ์ˆ˜๋Š” ์–‘์ชฝ 9ํšŒ์˜€์Šต๋‹ˆ๋‹ค. ์‹คํ–‰๊ธฐ๋งˆ๋‹ค ์ตœ์ดˆ ๋ณด๊ด€ ๋ฐฐ์—ด ํ•˜๋‚˜๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค๋ฉฐ, ์ด ์ค€๋น„๋Š” ์žฌ์‚ฌ์šฉ ์ˆ˜์น˜ ๋ฐ–์ž…๋‹ˆ๋‹ค.

๊ฐ™์€ ๊ธฐ์กด ํ•œ์˜ ์›๋ณธ ๋‘ ๊ฐœ์—์„œ ๋ชจ๋ธยท๊ฒฐ์ •๋ก ์„ ์ด์ „โ†’ํ›„๋ณดโ†’ํ›„๋ณดโ†’์ด์ „ ์ˆœ์„œ๋กœ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฐฝ๋งˆ๋‹ค ์—ฌ์„ฏ ์š”์ฒญ, ์ „์ฒด 96ํšŒ ์ƒ์„ฑยท48ํšŒ ๋ชจ๋ธ ํŒ๋‹จยท192ํšŒ ๋ฐ”๋”” ์‹คํ–‰์—์„œ 12,288/12,288 ์œ ํ•œ ๊ธฐ๋Œ€๊ฐ’๊ณผ ๊ณ ์ • ์ƒ์„ฑ Go๋ฅผ ์œ ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ ํŒŒ์ผ ์ฝ๊ธฐ ์ „์šฉ ํ™•์ธ 16ํšŒ๋„ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์˜๋„ ๊ณผ์ œ์™€ ํ•™์Šต ๊ฐฑ์‹ ์€ 0๊ฐœ์ž…๋‹ˆ๋‹ค.

์žฌ์‚ฌ์šฉ ์š”์ฒญ์˜ ์ค‘์•™๊ฐ’, ๊ฐ 40ํšŒ ์ด์ „ ์„ค์น˜ ํ›„๋ณด
์‘๋‹ต 64.13ms 65.88ms
๊ณต๊ตฌ ์ „์ฒด ํ•ด์‹œ 15.19ms 15.03ms
ํ˜„์žฌ ์ž์‹ CPU ํ•ฉ 12.82ms 13.20ms
ํ˜„์žฌ ์ž์‹ ์ค‘ ์ตœ๋Œ€ ๋‹จ์ผ RSS 4.42MB 4.42MB

์ด๋ฒˆ ๋ณ€ํ™”์—์„œ ํ™•์ธํ•œ ์„ฑ๊ณผ๋Š” ํ•ด์‹œ ํ˜ธ์ถœ์˜ ํ• ๋‹น ๊ฐ์†Œ์™€ ํ‘œ์‹œ ๊ฐœ์„ ์ž…๋‹ˆ๋‹ค. ์‘๋‹ต ์‹œ๊ฐ„ ๋ฒ”์œ„๋Š” ๊ฒน์ณค๊ณ  ์ผ๋ฐ˜์ ์ธ ์†๋„ ๊ฐœ์„ ์„ ํŒ๋‹จํ•  ๊ทผ๊ฑฐ๋Š” ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ์œ„ CPU/RSS๋Š” ํ˜„์žฌ ์ž์‹๋งŒ ์ง‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋ถ€๋ชจ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ํ•ด์‹œ ๋น„์šฉ, ๋ชจ๋ธ ๋‹จ๋… RAM๊ณผ ํ˜ธ์ŠคํŠธ CPU ์‚ฌ์šฉ๋ฅ ์€ ๋ณ„๋„ ์ธก์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. macOS arm64/Apple M4/Go1.27.1์˜ ๊ธฐ์กด ๋‘ ์˜๋„ ๋ฐ˜๋ณต์ž…๋‹ˆ๋‹ค.

๊ณต๊ฐœ ์›๋ณธยท์‹คํŒจยทGo ์ˆ˜์ง‘๊ธฐ์™€ ์žฌ์‹คํ–‰.

์„ค์น˜๋ณธ์—์„œ ํ•œ์˜ ๋ชจ๋ธยท๊ฒฐ์ •๋ก  8ํšŒ ์ƒ์„ฑยท4ํšŒ ์‹ค์ œ ํŒ๋‹จยท16ํšŒ ์‹คํ–‰์œผ๋กœ 1,024/1,024์™€ ๊ณ ์ • ์ƒ์„ฑ Go๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ์žฌ์‚ฌ์šฉ ์‘๋‹ต 69.42ยท62.53ms, ๊ฒฐ์ •๋ก  65.49ยท60.34ms์™€ ์ตœ์ดˆ ์‘๋‹ต๋„ ๋ณด์กดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ตฌ๊ฐ€ ์—†๋Š” ํ•œ ์š”์ฒญ์€ ์ข…๋ฃŒ 1, ๋ชจ๋ธยท๋ฐ”๋”” ์‹คํ–‰ 0ํšŒ, 128๊ฐœ ๊ธฐ๋Œ€๊ฐ’ ๋ฏธ๊ด€์ธก๊ณผ native unobserved๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค. ์„ฑ๊ณตยท์‹คํŒจ ์ €์žฅ ๊ธฐ๋ก์„ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๋‹ค์„ฏ ๋ฒˆ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ณต๊ตฌ์— FIFO๋ฅผ ์ง€์ •ํ–ˆ์„ ๋•Œ ํŒŒ์ผ์„ ์—ฌ๋Š” ๋‹จ๊ณ„์—์„œ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฌธ์ œ๋„ ๊ด€์ธกํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ํ™•์ธยท์ข…๋ฃŒํ•˜๊ณ  ์›๋ณธ์„ ๋ณด์กดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ #1198์—์„œ Unix์˜ ๋น„์ฐจ๋‹จ ์—ด๊ธฐ์™€ ์‹ค์ œ ํŒŒ์ผ ์ข…๋ฅ˜ ๊ฒ€์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ํ•„์ˆ˜ CIยท๋…๋ฆฝ ์ฆ๊ฑฐ ๋’ค ๊ฐœ๋ฐœ์— ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. main #1199๋„ ์ž์ฒด ๊ฒ€์‚ฌยท๋…๋ฆฝ ์ฆ๊ฑฐ ๋’ค ๋ณ‘ํ•ฉํ•˜๊ณ  93fa2742๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ํ›„๋ณด FIFO๋Š” 0.60์ดˆ, ์ƒˆ ์„ค์น˜๋ณธ์€ 19.665ms์— ์˜ค๋ฅ˜๋ฅผ ์•Œ๋ฆฌ๊ณ  ์ข…๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ค€๋น„ยท์บ์‹œ ์กฐ๊ฑด์ด ๋‹ฌ๋ผ ๋‘ ์›๋ณธ์„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจ๋ฅผ ์ฝ๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ธฐ.