๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค. ๋๋ ํธ๋ฃจ์ปฌ๋ฌ ์ง์์ ์ป์ผ๋ ค๊ณ hterm์ ํดํนํด ์์ง๋ง ์ด๊ฒ์ด ๋ ๋์ ์ ํ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ฌ๊ธฐ์์ ๊ตฌํํด์ผ ํฉ๋๋ค. https://github.com/sourcelair/xterm.js/blob/365a9f949cc1acfb6c4649ee1d85da3bbc60f928/src/InputHandler.ts#L1276
๊น๋ค๋ก์ด ๋ถ๋ถ์ ์บ๋ฆญํฐ์ ๋ํด ์์์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด๋ฅผ ๋ ๋๋งํ๋ ๋ฐฉ๋ฒ(์๋ง๋ ์ธ๋ผ์ธ style
์์ฑ)์ ๊ฒฐ์ ํ๋ ๊ฒ์
๋๋ค. https://github.com/sourcelair/xterm.js/pull/450 ๊ณผ ๊ฐ์ ๊ฒ์ด ์์ฑ ์ถ๊ฐ๋ฅผ ๋จ์ํํ ๊ฒ์
๋๋ค.
์๊ฐ๋๋ฉด ํ ๋ฒ ๋ด์ผ๊ฒ ์ง๋ง ์ปจํธ๋กค ์ํ์ค์ ๋๋ฌด ์ต์ํ๋ค๊ณ ๋ ํ ์ ์์ต๋๋ค.
http://invisible-island.net/xterm/ctlseqs/ctlseqs.html์ ์ดํด๋ณด์์ง๋ง ํธ๋ฃจ ์ปฌ๋ฌ๋ 24๋นํธ ์ปฌ๋ฌ์ ๋ํด์๋ ์๋ฌด ๊ฒ๋ ์ฐพ์ง ๋ชปํ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ต๋๊น, ์๋๋ฉด ์ด๊ฒ์ ๋ค๋ฃจ๋ ๋ค๋ฅธ ๋ฆฌ์์ค๊ฐ ์์ต๋๊น?
@cnsumner xterm์ ํ์ฌ ํธ๋ฃจ ์ปฌ๋ฌ๋ฅผ ํ์ํ ์ ์์ง๋ง ์ ์๋ ์ด์ค์ผ์ดํ ์ํ์ค ์ค ํ๋๋ฅผ ์ง์ํฉ๋๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ https://gist.github.com/XVilka/8346728 ์์ ํ์ธํ ์ ์์ต๋๋ค.
BTW ์ด๊ฒ์ ECMA-48 ํ์ค์ ๋ถ๋ถ์ ์ผ๋ก ์ง์ ๋์ด ์์ต๋๋ค.
์ฌ๊ธฐ์์ ํด์ผ ํ ์ผ์ ๋ํ ๋ ๋์ ์์ด๋์ด๋ฅผ ์ป๊ธฐ ์ํด ์ง์ ๋ถํ ๊ฐ๋ ์ฆ๋ช ์ ์์ฑํ์ธ์. https://github.com/Tyriar/xterm.js/tree/484_truecolor
ํด์ผ ํ ์ผ:
0x1RRGGBB
(fg) ๋๋ 0x0RRGGBB
(bg) ํ์์ 'ํธ๋ฃจ์ปฌ๋ฌ'๋ฅผ ๋ํ๋ด๋ ๊ฐ ๋ฌธ์์ ๋ค๋ฅธ ์ซ์๋ฅผ ์ถ๊ฐํฉ๋๋ค curTrueColor
์ ๋ง ๋ชป์๊ฒผ์ด์๋ฌธ์๊ฐ ์ธ์ฝ๋ฉ๋๋ ๋ฐฉ์์ ์ฌ๊ณ ํด์ผ ํ ๋์ ๋๋ค. ํ์ฌ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[attribute, character, width]
attribute
: ASCII fg, ASCII bg ๋ฐ ํ๋๊ทธ(๊ตต๊ฒ, ๋ฐ์ค, ๊น๋ฐ์, ๋ฐ์ , ๋ณด์ด์ง ์์)๋ฅผ ํฌํจํ๋ 32๋นํธ ์ ์๋ก ๋ชจ๋ ๋นํธ๊ฐ ์ฌ์ฉ๋๋ ๊ฒ์ ์๋๋๋ค.char
: ๋น ๋ฌธ์์ด(๋์ ๋ฌธ์๋ฅผ ์ฑ์ฐ๋ ๋๋น๊ฐ 0์ธ ๋ฌธ์์ ๊ฒฝ์ฐ) ๋๋ ๋จ์ผ ๋ฌธ์ ์ ๋์ฝ๋ ๋ฌธ์์ดwidth
: ๋ฌธ์์ ๋๋น๋ ํ์ฌ 0, 1 ๋๋ 2์ผ ์ ์์ง๋ง ์ฌ๊ธฐ์๋ ํญ์ ์ ๋๋ก ์ง์ํ๊ธฐ ์ํด ๋ ๋ง์ด ํฌํจ๋ ์ ์์ต๋๋ค. https://github.com/sourcelair/xterm.js/issues/734@ํฐ๋ฆฌ์๋ฅด
์, ๋ฎ์ ์๋น์ ์ต์ ํ๋์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ํญ๋ฐํฉ๋๋ค. width
์ ํจ๊ป ํฌ์ฅ๋ ์ ์์ต๋๋ค. ์ด ํ๋๋ 4๋ฐ์ดํธ(์ผ๋ฐ์ ์ผ๋ก ํญ์ ๊ธฐ๋ณธ๊ฐ์ 4 ๋๋ 8)๋ง ์ฌ์ฉํ๋ 16๋ณด๋ค ํฌ์ง ์์ต๋๋ค. ์ด๊ฒ์ ํ๋์ RGB ์ ์*๋ฅผ ์ํ ๊ณต๊ฐ์ ๋จ๊น๋๋ค( width
๊ฐ 32๋นํธ ์ ์๋ผ๊ณ ๊ฐ์ ). attribute
์ ๋ช ๊ฐ์ ๋นํธ๊ฐ ์๋์ง ํ์คํ์ง ์์ ๊ฒฝ์ฐ ๋ ๋ฒ์งธ RGB ์ ์๊ฐ ์์ ์ ์์ต๋๋ค .
์์ฑ์ ํ์ฌ bg์ ๋ํด 9๋ฐ์ดํธ, bg์ ๋ํด 9๋ฐ์ดํธ, ํ๋๊ทธ์ ๋ํด 5๋ฐ์ดํธ๋ฅผ ์๋นํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ๋์ ๋๋น๋ฅผ ์์ถํ ์ ์์ต๋๋ค. RGB ์ ์์๋ ๊ฐ๊ฐ 24๋ฐ์ดํธ(8*3)๊ฐ ํ์ํฉ๋๋ค.
๋ค์์ ์ ์ํ๋ (์ฝ๊ฐ ๋ณต์กํ) ๊ณต๊ฐ ์ ์ฝ ๋ฐฉ์์ ๋๋ค.
[char, attr1, attr2]
์ฌ๊ธฐ์ attr1์ (29๋นํธ):
๊ทธ๋ฆฌ๊ณ attr2๋ (30๋นํธ):
๋ ๊ฐ๋จํ ์ ๊ทผ ๋ฐฉ์์ ํนํ ์์ฑ์ ๋ํด ์ซ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
[char, attr, truecolorBg, truecolorFg]
์์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ฌํ ์ธ๋ถ ์ฌํญ์ ๋งค์ฐ ๋ณต์กํ๊ฒ ์บก์ํํ๊ณ ์ถ์ต๋๋ค. typescript๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ป๊ฒ๋ ๋ฐฐ์ด์ getter๋ฅผ ๋ฃ์ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ jsperf์์ ์ํํ ๋ง์ดํฌ๋ก ๋ฒค์น๋งํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ด๋ ์ด๋ณด๋ค 20๋ฐฐ ๋๋ ธ์ต๋๋ค. ํญ์ ์ ๋ขฐํ ์ ์๋ ๊ฒ์ ์๋์ง๋ง ํ๋กํ ํ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ค๋ฒํค๋๋ก ์์ํ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ํ๋ ํ์์ ๋งค์ฐ ์ ๋ฌธ์ํ๋์ด์ผ ํฉ๋๋ค. ์ง๊ธ ๋น์ฅ์ InputHandler.charAttributes
๋ฅผ ๋ณด๊ณ ์ค์ค๋ก ์์๋ด์ผ ํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ ์ฝ์ ๋ํ ๋ช ๊ฐ์ง ์ถ๊ฐ ์๊ฐ:
null
์ ์๋ํ ๊ฒ์
๋๋ค.์, ๋๋ถ๋ถ์ JS ์์ง์์ ์ธ๋ฑ์ค ์ก์ธ์ค๊ฐ ์๋ ๋ฐฐ์ด์ด ๊ฐ์ฒด ๋ฐ ํด๋น ์์ฑ ํ์ธ๋ณด๋ค ์ฌ์ ํ ๋น ๋ฆ ๋๋ค. V8์ ๊ฐ์ฒด์ ๋ํ ๋ช ๊ฐ์ง ์ถ๊ฐ ์ต์ ํ๋ฅผ ์ป์์ต๋๋ค. ๊ตฌ์ฑ ๋ฐ GC ํ๋ช ํ ๋ฐฐ์ด์ ํจ์ฌ ๋จ์ํ ๋ฉ๋ชจ๋ฆฌ ๋ ์ด์์์ผ๋ก ์ธํด ๋ ๋น ๋ฆ ๋๋ค(์ด ๋จ์ ์ ๊ธฐ์กด ๊ฐ์ฒด๋ฅผ ์ฌ์ฌ์ฉํ์ฌ ์๋ตํ ์ ์์).
์ฌ๊ธฐ์ ์ฌ๋ฐ๋ฅธ ๋ ์ด์์์ ๋ํ ๋จ์๊ฐ ์์ต๋๋ค. ๋ฌธ์ ๋ ๋๋ฌด ๋ง์ด ํฌ์ฅ๋ ํญ๋ชฉ์ด ํ์ํ ๋ณํ์ผ๋ก ์ธํด ๋ฐํ์ ํ๋ํฐ๋ฅผ ๋์ผ ๊ฒ์ด๋ผ๋ ๊ฒ์
๋๋ค. (์ด๊ฒ์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฌธ์ ๊ฐ ๋์ง ์๋ ๊ฒฝ์ฐ C์์ ๋นํธ ํ๋๋ฅผ ์ฌ์ฉํ์ง ์๋ ํ ๊ฐ์ง ์ด์ ์
๋๋ค. ํ์ํ ์ํํธ ์ฐ์ฐ์ด ๋ช
๋ น์ด ์บ์๋ฅผ ์ค์ผ์์ผ ์บ์ ๋๋ฝ์ ์ ๋ฐํฉ๋๋ค. ์ฝ๋๊ฐ ํจ์ฌ ๋๋ฆฌ๊ฒ ์คํ๋ฉ๋๋ค.)
Imho ์ ์ฉ ํ
์คํธ๋ ์ฌ๊ธฐ์์ ๊ฐ์ฅ ์ ์๋ํ๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค.
@jerch ํฅ๋ฏธ๋กญ์ต๋๋ค. ์ ๋ ์ง๊ธ https://github.com/sourcelair/xterm.js/pull/756 ์ ๋จ์์ฑ์ ์ํด 4๊ฐ์ ์ซ์ ๋ฒ์ ์ ๊ฐ์ง๊ณ
๋ฐ๋ผ์ ์ฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ฝ 5 * (1000 ์คํฌ๋กค๋ฐฑ) * (64๋นํธ ์์คํ ์ ๊ฒฝ์ฐ 8๋ฐ์ดํธ) * 80 = 3.2mb(js ๋ฐฐ์ด์ ์ค๋ฒํค๋ ์ ) ์ ๋๊ฐ ๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ์ผ๋ฐ์ ์ธ VS Code ํฐ๋ฏธ๋์ ์ค์ ๋๋น๋ ํ์ฌ ํ์์ ์ ์งํ๋ฉด ๋ ๋ฐฐ๊ฐ ๋ฉ๋๋ค. ํนํ ์ฌ์ฉ์๊ฐ ์ข ์ข 1000๊ฐ ์ด์์ ์คํฌ๋กค๋ฐฑ๊ณผ ์ฌ๋ฌ ํ์ฑ ํฐ๋ฏธ๋์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ง๊ธ ๋ณด๋ ๊ฝค ๊ฐํ๋ฅด๊ฒ ๋ณด์ ๋๋ค. ์ค์ ๋ก๋ ๋ณ๋ก ์ถ๊ฐ๋์ง ์๊ณ ์ฝ๊ฒ null์ด ๋ ์ ์๋ ํํ ๊ณต๋ฐฑ์ ์๋ง๋ ๊ฝค ํฐ ์น๋ฆฌ๊ฐ ๋ ๊ฒ์ ๋๋ค.
์์ฑ/์์ ์ธํธ ์บ์ ์์ด๋์ด๋ ๋น ๋ฅธ ์ก์ธ์ค๋ฅผ ์ํ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ ํ ์ ๋งํด ๋ณด์ ๋๋ค. ๊ฐ๋ฒผ์ด ์คํ๋ ์ด ํธ๋ฆฌ์ ๊ฐ์ ๊ตฌ์กฐ๊ฐ ์ด์์ ์ ๋๋ค(์์ฑ์ ๋ํ ๋น ๋ฅธ ์ก์ธ์ค๊ฐ ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉ๋จ).
๋ผ์ธ ๋ฐ์ดํฐ ๋ฐฐ์ด์ ๊ทธ๋ฅ ๋ฒ๋ฆฌ๋ ๋์ ํธ๋ฆฌ๋ฐํ ๋( ์: ์ฌ๊ธฐ ) ์ฌ์ฌ์ฉํ๋ ๊ฒ๋ ๊ณ ๋ คํด ๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์, ์์ง ์ค๋ฒํค๋๋ฅผ ์ผ๋์ ๋๊ณ ํฌ๊ธฐ๊ฐ ๋ ์ปค์ง๋๋ค. ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ๋ชจ๋ ํญ๋ชฉ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝํ
์ธ ์ ๋ํ ํฌ์ธํฐ์ธ ์ฐธ์กฐ๋ก ์ ์ฅ๋ฉ๋๋ค. ์กฐ๋ฐํ js-array๋ ์ฝ๊ฐ์ ์ด์ ์ด ์์ต๋๋ค. ๊ฒฝ๋ก ์ด๋๊ฐ์ C์ ๊ฐ์ ๋ฐฐ์ด๋ก ํ์ฑ๋ฉ๋๋ค(์ค์ ๋ก๋ ArrayList). ํฌ์ ๋ฐฐ์ด ๋ฐ ๊ธฐํ ๊ฐ์ฒด๋ ์์ฑ ํ์ธ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ผ๋ถ ํธ๋ฆฌ ๋ง์ ๋ก ๋น๋๋ฉ๋๋ค.
๋ฐ๋ผ์ 64๋นํธ์ ๊ฒฝ์ฐ ์ฐธ์กฐ ํญ๋ชฉ์ ์
๋น 5 * 8๋ฐ์ดํธ๋ฅผ ๋ ์ถ๊ฐํฉ๋๋ค(๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณ์ฐ์ ๋ ๋ฐฐ์ธ 6.4mb). ์ฝํ
์ธ ๋ "์ค์ ์ฝํ
์ธ " ์ธ์ ๋ ๋ง์ ๋ฐ์ดํธ๋ฅผ ์ถ๊ฐํ ์ ์์ง๋ง ์ด๋ Integer ๋ฐ String ์ ํ์ ์ค์ ๊ตฌํ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค.
์๋ง๋ TypedArray๊ฐ ์ด๊ฒ์ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ฑฐ๊ธฐ์์ ์ ์ ํญ๋ชฉ์ ์ถ๊ฐ ๊ฐ์ ์ฐธ์กฐ ์์ด ๋ฉ๋ชจ๋ฆฌ์ ์ธ๋ฑ์ค ์์น์ ์ง์ ์์ฃผํ ์ ์์ต๋๋ค. asm.js๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ค์์๋ง ์๋ํฉ๋๋ค.
๋ค์์ ์์ฑ ๋ฐ ๋ฐ์ดํฐ ์ฝ์ ์ ์ํด TypedArray์ js-Array๋ฅผ ๋น๊ตํ๋ ๋น ๋ฅธ ๋ง์ดํฌ๋ก ๋ฒค์น๋งํฌ์ ๋๋ค. http://jsbench.github.io/#af3ea1056a70df2aa6775699d174df0d
TypedArray๋ ๋ด ์ปดํจํฐ์์ FF ๋ฐ Chrome์ ์ฌ์ฉํ์ฌ 10๋ฐฐ ๋ ๋น ๋ฅด๊ฒ ์คํ๋ฉ๋๋ค. ์ด๊ฒ์ ์ฌ์ ํ ๋น ๋๋ฌธ์ผ ์ ์์ผ๋ฉฐ ๊ถ์ฅ๋์ง ์์ผ๋ฏ๋ก js-Array๋ก ํ ์คํธํ์ง ์์์ต๋๋ค. JIT๊ฐ ๊ฐ์ด 8๋ฐ์ดํธ๋ง๋ค 1์ฉ ์ฆ๊ฐํ๊ณ ์ด๋ฅผ ์ต์ ํํ๋ค๋ ์ฌ์ค์ ๋ฐ๊ฒฌํ๋์ง ํ์คํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ฒค์น๋งํฌ๋ ์ ํ ์ธ๋ชจ๊ฐ ์์ต๋๋ค.
TypedArray์ ๊ฒฝ์ฐ ์ก์ธ์ค๊ฐ ์ฝ๊ฐ ๋ ๋์ฉ๋๋ค( Number
๋ณํ์ผ๋ก ์ธํ ๊ฒ์ผ ์ ์์). ๋ฉ๋ชจ๋ฆฌ ์๋น๋ TypedArray์์ ํจ์ฌ ๋ ์ข์ต๋๋ค.
TypedArray์ ๋จ์ ์ ์๋น ๋ฐ์ดํฐ(๋ฐ์ดํฐ๋ฅผ ํผํ๊ธฐ ์ํ ํธ๋ฆญ์ด ์ฌ๊ธฐ์์๋ ์ ํ ์๋ํ์ง ์์ผ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ๋ ์ด์จ๋ "์์ค"๋จ) ๋๋ ์ฝํ ์ธ ๋ํ์ผ๋ก ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋ ์ ์ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ๋๋ค. ์ด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๊ธฐ ์ด๋ ต๊ณ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ณ์ํด์ ๋ณต์ฌํด์ผ ํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์๋ ํ์ธ์. ์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๐์ด ์์ ์ด ์๋ฃ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ ๊ทน์ ์ผ๋ก ํด๊ฒฐํ๋ ์ฌ๋์ด ์์ต๋๊น? ๋ค๋ฅธ ๊ณณ์์ ๋ ผ์๋๊ณ ์์ต๋๊น? @chabou @
์ด๊ฒ์ tmux ๋ฐ vim/neovim์ ์ง์ํ๋ ์ ์ ํ dev CLI ์ํฌํ๋ก๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด Windows 10์ WSL์์ ํ์ดํผ๋ฅผ ์ฌ์ฉํ๋ ๋ง์ง๋ง ์ง์ฐ ๋ฌธ์ ์ ๋๋ค. WSL๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ๋ค๋ฅธ ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ๋ ๋ณด๊ธฐ์ ์ข์ง ์๊ณ wsltty๊ฐ ๊ฐ๊น์ง๋ง ํญ ์ง์ ๋ฐ ํ๋ฌ๊ทธ์ธ ์ง์์ด ๋๋ฝ๋์์ต๋๋ค...
@vastbinderj ๋๋ฝ๋ ํธ๋ฃจ ์ปฌ๋ฌ ์ง์์ด ์ ์ ํ dev CLI ์ํฌํ๋ก๋ฅผ ์ ๊ณตํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์์งํ ์ง๋ฌธ.
@szmarczak ๋ฐ @vastbinderj
์ด ๋ฌธ์ ๋ ์ฌ์ ํ ์์ ์ ์์ง๋ง ํ์ฌ ํฐ๋ฏธ๋ ๋ฒํผ ์ค๊ณ์ ๋์
๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ผ๋ก ์ธํด ์ฐจ๋จ๋์์ต๋๋ค. #791์ด ๋ ํจ์จ์ ์ธ ๋ฒํผ ๋ ์ด์์์ ๊ฐ์ ธ์ค๋ฉด ๋ ๋ง์ ๊ด์ฌ์ ๋ฐ์ ๊ฒ์
๋๋ค.
@rfgamaral simple - ์ ๋ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ๋ง์ ์ด๋ํ ์ํฐํ๋ผ์ด์ฆ ์์คํ ์์ ํ๋ฃจ์ ๋ค์ํ ์ ๋์ค/๋ฆฌ๋ ์ค ์๋ฒ์์ ์์ ํ๋ฉฐ ๋ฉ์ธ ํธ์คํธ์์ ์ ์ ํ ์์ ์ง์์ด ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ด๊ฐ rhel์ด๋ centos์ด๋ ๋ฐ๋น์์ด๋ ์๊ด์์ด ์์์ด ๋์ผํ์ง ์์ ๊ฒ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๊ณ ํต์ค๋ฝ์ต๋๋ค. ๋ํ Windows์์ ์ฃผ๋์ด ๋๋ ํผ์ด ๊ฐ๋ฐ์๋ฅผ ๋๊ธฐ ์ํด ์์ ์๋ค๋ ๊ฒ์ ์ผ์ด ๊ท ์ผํ๊ฒ ์๋ํ์ง ์์ผ๋ฉด ์ปจํ ์คํธ ์ ํ์ ํด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฑฐ์ ์ ๋จ์๋ก ๋ฆด๋ฆฌ์ค๋ ๊ฐ์ ์ฌํญ๊ณผ VS Code์ ๋์ผํ ๊ฐ์ ์ฌํญ์ผ๋ก wsl์ด ์ผ๋ง๋ ๋นจ๋ฆฌ ๋ฐ์ ํ๋์ง ๋งค์ฐ ์ธ์์ ์ ๋๋ค.
@jerch ์ ๋ฐ์ดํธ ๊ฐ์ฌํฉ๋๋ค. #791์ด ํด๊ฒฐ๋ ๋๊น์ง ์ฐธ์์ฑ ์๊ฒ ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค...
์ด๊ฒ๋ ๋ง์ด ๊ธฐ๋๋ฉ๋๋ค.
JavaScript ์ซ์๋ ์ต๋ 53๋นํธ์ ์ ํํ ์ ์๋ฅผ ๋ํ๋ผ ์ ์์์ ๊ธฐ์ตํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ 32๊ฐ์ "ํธ๋ฆฌํ" ๋นํธ ์ธ์ 21๋นํธ๊ฐ ์์ต๋๋ค. ์์ง ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ ๊ฐ๋จํ ์ถ๊ฐ๋ก ์กฐ๊ธ "๋๋"ํ ์ ์์ต๋๋ค. ์์ ๋นํธ๋ฅผ ์ฝ์ผ๋ ค๋ฉด ์ ์ ํ 2์ ๊ฑฐ๋ญ์ ๊ณฑ ์ ์๋ก ๋๋ ๋ค์ ์ผ๋ฐ ๋นํธ ์ฐ์ฐ์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
๋ฌผ๋ก ๊ณ ์ฐจ ๋นํธ๋ก ์์ ํ๋ ๊ฒฝ์ฐ ์ค๋ฒํค๋๊ฐ ์กฐ๊ธ ๋ ์์ง๋ง ์ต์ CPU์์๋ 2์น์ผ๋ก ๋๋๋ ๊ฒ์ด ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค๋ณด๋ค ์๋์ ์ผ๋ก ์ ๋ ดํฉ๋๋ค.
์ ๊ฒฝ๊ณผ ๋ฐฐ๊ฒฝ์ ๋ํด ๊ฐ๊ฐ 25๋นํธ์ธ 50๋นํธ์ ๋จ์ผ ์ซ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ค์ ๋ ๊ฒฝ์ฐ 1๋นํธ๋ 24๋นํธ "ํธ๋ฃจ" ์์์ ์ฌ์ฉํ๊ณ ์์์ ๋ํ๋ ๋๋ค. ์ค์ ํ์ง ์์ผ๋ฉด "๋ ผ๋ฆฌ์ "(ํ ๋ง ๊ฐ๋ฅ) ๋๋ 8๋นํธ ์์์ ์ฌ์ฉํฉ๋๋ค. ํ์๊ธฐ ๋นํธ๋ 2๊ฐ์ ํ์ ๋นํธ์ฌ์ผ ํฉ๋๋ค. ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ ๋ ผ๋ฆฌ/8๋นํธ ์์์ด ๋ค์ 30๋นํธ์ ํฌํจ๋ ์ ์์ผ๋ฏ๋ก ์ค์ ๋ก ํธ๋ฃจ ์ปฌ๋ฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋นํธ 32-50๋ง ์ฌ์ฉํฉ๋๋ค.
@PerBothner ์ฐ๋ฆฌ๋ ์๋ก์ด ๋ฒํผ์ Uint32Array๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ ํธ์๋ฅผ ์ํด ํด๋น ๋ฐฐ์ด์๋ ์์์ ๋ฃ์ต๋๋ค. ํธ๋ฃจ์ปฌ๋ฌ๋ฅผ ์ง์ํ๊ธฐ ์ ์ ๋จผ์ ์๋ก์ด impl์ ์ด๊ท ํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ์์ง ์๋ฃ๋์ง ์์์ต๋๋ค.
๋ํ ๊ฐ๋ฅํ ๋ ์ด์์์ ๋ํ ๋ช ๊ฐ์ง ํ ์คํธ/๊ณ์ฐ์ ์ํํ์ต๋๋ค(https://gist.github.com/jerch/27c2cf91ad313a25415873e4047b2900 ์ฐธ์กฐ). ๊ฐ๋จํ ๋งํด์ ์์ด๋์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ๊ณผ ๋ฐํ์ ํจ๋ํฐ์ ์ ์ถฉ์ ์ ๊ดํ ๊ฒ์ ๋๋ค. ํ์ํ๋ ๋ฐฐ์ด๋ก์ ์ ํ์ ์ด๋ฏธ ์์ฒญ๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ์ ์ ๊ณตํ์ต๋๋ค(ํ์ฌ ํธ๋ฃจ ์ปฌ๋ฌ ๊ฐ์ ์์ง ์ ์ฉ๋์ง ์์์ง๋ง ์์์ ๋ ๋ฒ์งธ ์์ด๋์ด๋ฅผ ๊ตฌํํจ).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ ํ์ธ์. ์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๐์ด ์์ ์ด ์๋ฃ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค.