é 延ãç°ãªãVRãã«ã¡ããã§ã䌌ããããªãã®ã衚瀺ãããŸãã 20ããªç§ã¯æ£åžžã«èŠãã50ããªç§ã¯é ãã150ããªç§ã¯ãã§ã«èããããŸãã ã
å¥åŠãªããšã§ãããããŒããŒããããŠã¹ã®å ¥åã®é 延ã«é¢ããèŠæ ã¯ã»ãšãã©ãããŸããã ãã®çç±ã¯ãããŒããŒããšããŠã¹ã®å ¥åãéåžžã«é«éã§ãããããšæãããŸã-ãããŠãããã¯ã»ãšãã©ç¬æã«èµ·ãããŸãã ããã ãšããèšãããŸãããç¶æ³ã¯ãŸã£ããéã ãšæããŸãã ã³ã³ãã¥ãŒã¿ãŒãããŒã¿å ¥åã«è¿ éã«å¿çãããšããèãæ¹-éãã«æ°ä»ããªãã»ã©éã-ã¯ãç§ãããã®ããã°ã©ããŒããèããæãäžè¬çãªèª€è§£ã§ãã
ãã¹ã¿ãŒãéåžžã®ã³ã³ãã¥ãŒã¿ãŒæ§æã§ã²ãŒã ã®éå§ããçµäºãŸã§ã®å®éã®é 延ã枬å®ãããšãéåžžãé 延ã100ããªç§ã® ç¯å²ã«ããããšãããããŸãã
Robert Menzelãäœæããã²ãŒã ãã€ãã©ã€ã³ã®é 延ã®ååžãèŠããšã100 + msãã©ãããæ¥ãŠããã®ããç°¡åã«ç解ã§ããŸãã
- ã2 msïŒããŠã¹ïŒ
- 8 msïŒã²ãŒã ã«ããå ¥ååŠçã®éå§ãŸã§ã®å¹³ååŸ æ©æéïŒ
- 16.6ïŒã²ãŒã ã·ãã¥ã¬ãŒã·ã§ã³ïŒ
- 16.6ïŒã¬ã³ããªã³ã°ã³ãŒãïŒ
- 16.6ïŒGPUã¯åã®ãã¬ãŒã ãæç»ããçŸåšã®ãã¬ãŒã ã¯ãã£ãã·ã¥ãããŸãïŒ
- 16.6ïŒGPUã¬ã³ããªã³ã°ïŒ
- 8ïŒvsyncã®å¹³åäžäžèŽæéïŒ
- 16.6ïŒãã£ã¹ãã¬ã€ãã¬ãŒã ãã£ãã·ã³ã°ïŒ
- 16.6ïŒãã¬ãŒã ã®åæç»ïŒ
- 5ïŒãã¯ã»ã«ã¹ã€ããã³ã°ïŒ
ããã§ã¯ãã²ãŒãã³ã°ããŠã¹ãšããªããŸãšããªLCDã®äœ¿çšãæå³ããŠããããšã«æ³šæããŠãã ããã ãããå®éã«ã¯ãããŠã¹ã®é 延ãšãã¯ã»ã«ã®åãæ¿ããã¯ããã«å€§ãããªãããšããããããŸãã
ã·ã¹ãã ãæ§æããŠ40ããªç§ã®ç¯å²ã«åããããšãã§ããŸãããã»ãšãã©ã®ãŠãŒã¶ãŒã¯ããã§ã¯ãããŸããã ãããŠãããšãããã ãšããŠããã¿ãã¬ãããVRãã«ã¡ããããæ¬æ¥ã©ããã«ãåäœãéå§ãã10ã20ããªç§ã®ç¯å²ããã¯ã»ã©é ãã§ãã
ã²ãŒããŒã¯ä»ã®ã»ãšãã©ã®äººãããéèŠã§ãããããããŒãæŒããŠããç»é¢ã衚瀺ãããŸã§ã®é 延ã®æž¬å®ã¯éåžžã²ãŒã ã§è¡ãããŸãããä»ã®ã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã¯å¿çæéã«ãããŠã²ãŒã ãšå€§ããç°ãªããšã¯æããŸããã éåžžãã²ãŒã ã¯ãå žåçãªãã¢ããªã±ãŒã·ã§ã³ãããåãã¬ãŒã ã§ããå€ãã®äœæ¥ãè¡ããŸãããæé©åãããŠããŸãã ã¡ã³ãŒã«ã¯ãã²ãŒã ããžãã¯ã®ååãšã¬ã³ããªã³ã°ã®ååãå«ã33ããªç§ã®äºç®ãã²ãŒã ã«äžããŸãã ã²ãŒã 以å€ã®ã¢ããªã±ãŒã·ã§ã³ã®å¿çæéã¯ã©ã®ãããã§ããïŒ Pavel Fatinã¯ããã¹ããšãã£ã¿ãŒã§ããã枬å®ããæ°ããªç§ããæ°çŸããªç§ã®é 延ãçºèŠããŸãã-ãããŠã圌ã¯ä»ã®ã¢ããªã±ãŒã·ã§ã³ã®è©äŸ¡ã«ã䜿çšã§ãã枬å®çšã®ç¹å¥ãªã¢ããªã±ãŒã·ã§ã³ãæžããŸãã ã java.awt.Robotã䜿çšããŠãããŒã¹ãããŒã¯ãšç»é¢ãã£ããã£ãçæããŸãã
å人çã«ã¯ãäœããã®çç±ã§ãããŸããŸãªã³ã³ãœãŒã«ãšã·ã§ã«ã®å¿çæéã調ã¹ãããšæããŸãã ãŸããã³ã³ãœãŒã«ã§æéã®å€§éšåãè²»ãããéåžžã¯ãã®äžã§ç·šéãããããããã§ã®å ¥åé 延ã¯ã³ã³ãœãŒã«ã«äžéšèµ·å ããŸãã 第äºã«ãã»ãšãã©ã®å ŽåïŒçŽ2æ¡å€ãïŒãããã¹ãåºåé床ã¯ã倧ããªãã¡ã€ã«ã§
cat
ãå®è¡ããããšã§æž¬å®ãããããšãå€ããã³ã³ãœãŒã«ãã³ãããŒã¯ãšããŠæäŸãããŸãã ããã¯ããªã圹ã«ç«ããªããã³ãããŒã¯ã§ããããã«æããŸãã
cat
ã䜿çšããŠãã¡ã€ã«ãåŠçããã³ã³ãœãŒã«ã«
stdout
ãçºè¡ããé床ã«ãã£ãŠãã¿ã¹ã¯ãæåŸã«å®è¡ããæéãå¶éãããããšãæãåºããŸããïŒemacsã§eshellã䜿çšããªãéãïŒã ãããŠããã®ãããªç¹æ®ãªæ¬¡å ã圹ç«ã€åäžã®ã¿ã¹ã¯ãæ³åããããšã¯ã§ããŸããã ç§ã«ãšã£ãŠéèŠãªæ¬¡ã®ã¿ã¹ã¯ã¯ã誀ã£ãŠå€§éã®åºåã
stdout
éä¿¡ãããšãã®
^C
å²ã蟌ã¿ã³ãã³ãã®å®è¡é床ã§ãã ããããå®éã®æž¬å®ãããããããã«ãã³ã³ãœãŒã«ã倧éã®å ¥åã
stdout
åºåãžã®
stdout
ãšãšãã«åžåããèœåã¯ã
^C
ãžã®å¿çæéãšã¯ã»ãšãã©é¢ä¿ããããŸãã
^C
ããŒãžå šäœãäžäžã«ã¹ã¯ããŒã«ããé床ã¯é¢é£ããŠããããã«èŠããŸãããå®éã®æž¬å®ã§ã¯ããããã®2ã€ã®ãã©ã¡ãŒã¿ãŒã¯ããŸãçžé¢ããŠããŸããïŒããšãã°ãemacs-eshellã¯ãã°ããã¹ã¯ããŒã«ããŸããã
stdout
éåžžã«ãã£ããåžåããŸãïŒã ä»ã«æ°ã«ãªãã®ã¯å¿çæéã§ãããç¹å®ã®ã³ã³ãœãŒã«ã
stdout
è¿ éã«åŠçããŠãããšããæ å ±ã¯ãå¿çæéã«ã€ããŠããŸãèªã£ãŠããŸããã
ããã€ãã®ã³ã³ãœãŒã«ã®å¿çæéãèŠãŠã¿ãŸããã-ãããã®ã©ããé¡èãªé 延ãè¿œå ããŸãã ããŒãæŒããŠããã©ãããããã®å éšã¹ã¯ãªãŒã³ãã£ããã£ãŸã§ã®å¿çæéã枬å®ããå Žåãç°ãªãã³ã³ãœãŒã«ã®é 延ã¯æ¬¡ã®ãšããã§ãã
ãããã®ã°ã©ãã¯ãããŸããŸãªã³ã³ãœãŒã«ã®é 延ã®ååžã瀺ããŠããŸãã 瞊軞ã¯ããªç§åäœã®é 延ã§ãã 氎平軞ã«æ²¿ã£ãããŒã»ã³ã¿ã€ã«ïŒããšãã°ã50ã¯ããŒã¿ã®50ïŒ ã50ããŒã»ã³ã¿ã€ã«ãäžåãããšãæå³ããŸããã€ãŸããããã¯å¹³åã¯ãªãã¯æ°ã§ãïŒã ç¹ã«æå®ããªãéããmacOSã§è¡ããã枬å®ã å·ŠåŽã®ã°ã©ãã¯ç¡è² è·ã®è»ã«å¯Ÿå¿ããå³åŽã®ã°ã©ãã¯è² è·ã®ããã£ãè»ã«å¯Ÿå¿ããŠããŸãã å¹³åå€ã®äžå€®å€ã®ã¿ãèŠããšãäžéšã®ç«¯æ«ã¯éåžžã«ããèŠããŸããterminal.appãšemacs-eshellã¯ãã¢ã³ããŒããããã·ã¹ãã ã§çŽ5ããªç§ã§ãã ããã¯ãã»ãšãã©ã®äººãé 延ã«æ°ä»ããªãã»ã©å°ããã§ãã ããããã»ãšãã©ã®ã³ã³ãœãŒã«ïŒstãalacrittyãhyperãiterm2ïŒã¯ã ãŠãŒã¶ãŒ ãããŒããããŠããªãã·ã¹ãã ã§ãã£ãŠãã è¿œå ã®é 延ã«ãã§ã«æ°ã¥ããŠããç¯å²ã«ãããŸã ã ã°ã©ãã®æ«å°Ÿãããšãã°99.9ããŒã»ã³ã¿ã€ã«ã®å¿çãèŠããšããã¹ãŠã®ã³ã³ãœãŒã«ã¯ããŠãŒã¶ãŒã®èªèã®èª¿æ»ã«åŸã£ãŠãè¿œå ã®é 延ãé¡èã«ãªãã¯ãã®ç¯å²ã«å ¥ããŸãã æ¯èŒã®ããã«ãå éšã§çæãããããŒã¹ãããŒã¯ãšäžéšã®ã³ã³ãœãŒã«ã®GPUã¡ã¢ãªã«å ¥ããŸã§ã®é 延ã¯ã ãã¹ãã³ããã·ã¢ãã«ãŸã§ã®ãã±ããã®ç§»åæé ïŒçŽ70ããªç§ïŒãè¶ ããŠããŸã ã
ãã¹ãŠã®æž¬å®ã¯ãåã³ã³ãœãŒã«ãåå¥ã«ãã¹ããããšãã«ãA / Cã±ãŒãã«ããã®é»åãªãã§ããããªãŒããã«å é»ããŠå®è¡ãããŸããã è² è·æã®æž¬å®ã¯ãRustã®ã³ã³ãã€ã«äžã«è¡ãããŸããïŒä»¥åãšåæ§ã«ãA / Cã±ãŒãã«ããã®é»åãªãã§ããããªãŒããã«å é»ããçµæã®åçŸæ§ã®ããã«ããã¹ãŠã®äŸåé¢ä¿ãããŠã³ããŒãããåŸãRustã®ã¯ãªãŒã³ãã«ããã15ç§åŸã«å枬å®ãéå§ããŸãããããã¹ããšãã¹ãã®éã«ååãªæéãèšããŠããã¹ãéã®äœæž©èª¿ç¯ã«ããå¹²æžïŒã
è² è·æã®å¹³åé 延ã®äžå€®å€ãèŠããšãemacs-termã«å ããŠãä»ã®ã³ã³ãœãŒã«ã®çµæã¯ãã¢ã³ããŒãããããã·ã³ãããããã»ã©æªããããŸããã ãã ãã90ããŒã»ã³ã¿ã€ã«ã99.9ããŒã»ã³ã¿ã€ã«ã®ããã«ãã°ã©ãã®æ«å°Ÿã§ã¯ãåã³ã³ãœãŒã«ã®å¿çæ§ãå€§å¹ ã«äœäžããŸãã macOSããLinuxã«åãæ¿ããŠãç»åã¯ããŸãå€ãããŸããããã³ã³ãœãŒã«ãç°ãªãã°ç°ãªããŸãã
ãããã®çµæã¯ãææªã®å Žåã®ã·ããªãªãããã¯ããã«åªããŠããŸãïŒäœããããªãŒå é»ã§ãã³ã³ãã€ã«ãéå§ãããŠãã10ååŸ ã£ãŠæž©åºŠèª¿æŽã«ãããã€ãºãæªåãããšãæ°çŸããªç§ã®é 延ãçºçããå¯èœæ§ããããŸãïŒãããã§ãåã³ã³ãœãŒã«ã«ã¯ã°ã©ãã®æ«å°Ÿã«é 延ããããŸã人ã«ç®ç«ã€ããã«ããŠãã ããã ãŸããããã¯ãå ¥åºååŠçãã€ãã©ã€ã³ã®éå§ããçµäºãŸã§ã®åèšå¿çæéã®ã»ãã®äžéšã«éããªãããšãå¿ããªãã§ãã ããã
ããŒããŒãå ¥åãšç»é¢åºåã®éã®é 延ã«ã€ããŠãã¹ã¿ã€ã©ã¹ã§æç»ãããšããVRãã«ã¡ããã§æç»ãããšããšåãããã«äžå¹³ãèšããªãã®ã¯ãªãã§ããïŒ ç§ã®çè«ã§ã¯ãVRãšã¿ãã¬ããã®å Žåã人ã ã¯åæ§ã®ãã¢ããªã±ãŒã·ã§ã³ãã§å€ãã®çµéšãæã¡ãã¬ã€ãã³ã·ãŒãã¯ããã«å°ãªããšèããŠããŸãã ã¿ãã¬ããã®å Žåããã®ãããªãã¢ããªã±ãŒã·ã§ã³ãã¯éçãšçŽã§ãããä»®æ³çŸå®ã®å Žå-VRãã«ã¡ãããªãã§ã®ã¿é ãåããæ®éã®äžçã§ãã ããããããŒããŒãå ¥åãšç»é¢ãžã®åºåã®éã®å¿çæéã¯ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã§éåžžã«é·ããããã»ãšãã©ã®äººã¯åœç¶å€§ããªé ããåãã ãã§ãã
å¥ã®çè«ã¯ãããŒããŒããšããŠã¹ã®å ¥åãã¿ãã¬ããã®å ¥åãšæ ¹æ¬çã«ç°ãªããããé 延ãç®ç«ããªããªããšãããã®ã§ãã ããŒã¿ããªããŠãããã®ãããªçè«ã¯ä¿¡ããããªãããã§ãããªããªããæ°åããªç§äœåã«ãªã¢ãŒã端æ«ãä»ããŠæ¥ç¶ãããšãããŒãæŒãããšãã«é¡èãªé ããæããããã§ãã ãããŠãA / Bãã¹ãã«äœåãªé 延ãè¿œå ãããšãåã«èª¬æããç¯å²ã®é 延ã«æ°ä»ãããšãã§ããŸãã
ãã®ãããæãäžè¬çãªãã³ãããŒã¯ïŒæšæºåºåã®ããã©ãŒãã³ã¹ïŒãšç°ãªãã³ã³ãœãŒã«ã®é 延ãæ¯èŒããå Žåãç°ãªãã³ã³ãœãŒã«ãæšæºåºåãžã®åºåã®ããã«å ¥åããŒã¿ãåŠçããé床ã枬å®ããŠã¿ãŸãããã
ã³ã³ãœãŒã« | æšæº
ïŒMB / sïŒ | idle50
ïŒããªç§ïŒ | load50
ïŒããªç§ïŒ | idle99.9
ïŒããªç§ïŒ | load99.9
ïŒããªç§ïŒ | mem
ïŒMBïŒ | ^ C |
---|---|---|---|---|---|---|---|
æ lac | 39 | 31 | 28 | 36 | 56 | 18 | ããã£ã |
terminal.app | 20 | 6 | 13 | 25 | 30 | 45 | ããã£ã |
st | 14 | 25 | 27 | 63 | 111 | 2 | ããã£ã |
æ lacãªtmux | 14 | ||||||
terminal.app tmux | 13 | ||||||
iterm2 | 11 | 44 | 45 | 60 | 81 | 24 | ããã£ã |
ãã€ã㌠| 11 | 32 | 31 | 49 | 53 | 178 | 倱æãã |
emacs-eshell | 0.05 | 5 | 13 | 17 | 32 | 30 | 倱æãã |
emacs-term | 0.03 | 13 | 30 | 28 | 49 | 30 | ããã£ã |
stdout
ããã©ãŒãã³ã¹ãšã³ã³ãœãŒã«ã®è¡šç€ºé床ã®é¢ä¿ã¯æããã§ã¯ãããŸããã ãã®ãã¹ãã§ã¯ãterminal.appã¯å€éšããã¯éåžžã«æªãèŠããŸããã ã¹ã¯ããŒã«ãããšãç»é¢ããã£ãã«æŽæ°ãããªãããã«ãããã¹ããããããã移åããŸããã åé¡ã¯ãã€ããŒããã³emacs-termã§ã芳å¯ãããŸããã Emacs-termã¯åºåã«ãŸã£ãã察å¿ããŠããŸããã§ãã-ãã¹ããå®äºããŠãããæåŸãŸã§æŽæ°ããã®ã«æ°ç§ããããŸããïŒè¡šç€ºãããè¡æ°ã瀺ãã¹ããŒã¿ã¹ããŒã¯é¢é£æ§ãããããã«èŠããããããã¹ããçµäºãããŸã§æ°ã¯å¢å ããŸããã§ããïŒã ãã€ããŒã©ã°ãããã«é ããæ°åç¹æ» ããŠããç»é¢ã¯ã»ãšãã©æŽæ°ãããŸããã§ããã
Hyper Helper
ããã»ã¹ã¯ãçŽ2åéCPU䜿çšç100ïŒ ã§äººçºçã«ãµããŒããããã³ã³ãœãŒã«ã¯åžžã«å®å šã«å¿çããŸããã§ããã
ãã®ã³ã³ãœãŒã«ã¯ã¹ã¯ããŒã«ã¢ããããµããŒãããŠããªããããAlacrittyã¯tmuxãããŒãžã£ãŒã§ãã¹ããããŠãããããã¥ã¡ã³ãã«ã¯tmuxã䜿çšããå¿ èŠããããšèšèŒãããŠããŸãã æ¯èŒã®ããã«ãterminal.appãtmuxã§ãã¹ãããŸããã ã»ãšãã©ã®ã³ã³ãœãŒã«ã§ã¯ãtmuxã¯
stdout
ã®é床ãäœäžãããªãããã§ãããalacrittyãšterminal.appã¯ååã«é«éã§ãããããå®éã«ã¯tmuxã®é床ã«ãã£ãŠããã©ãŒãã³ã¹ãå¶éãããŠããŸããã
Emacs-eshellã¯æè¡çã«ã¯ã³ã³ãœãŒã«ã§ã¯ãããŸããããå Žåã«ãã£ãŠã¯ãã®ããã°ã©ã ãã³ã³ãœãŒã«ã®ä»£æ¿ãšããŠäœ¿çšã§ãããããeshellããã¹ãããŸããã å®éãeshellãštermã®äž¡æ¹ã®Emacsã¯éåžžã«é ãããšãå€æããããã
stdout
çæããå®éã®é床ã«ã¯é¢ä¿ãããŸããã éå»ã«ãeshellãŸãã¯termã䜿çšããŠãããšãã«ã
stdout
ãŸãã¯
stderr
ã§è©³çŽ°ãã®ã³ã°ã䜿çšããŠã³ãã³ããå®è¡ãããšãæ°åè¡ã®ããã¹ãã®ã¹ã¯ããŒã«ãåŸ ã€ããšããããŸããã ããã¯éåžžã«ãŸãã«ããçºçããªããããç§ã«ãšã£ãŠã¯ãé 延ã0.5ãŸãã¯1ç§ã«éãããŸã§ããã¯å€§ããªåé¡ã§ã¯ãããŸããããä»ã®ã³ã³ãœãŒã«ã§ã¯ãã¹ãŠæ£åžžã«åäœããŸãã
éã«ããã³ã°ããŒã«ã®é 延ã«æ°ä»ãã®ã«ååãªéãã§æåãå ¥åããŠããŸãã ããšãã°ã1åããã120ã¯ãŒããã€ãŸã1ç§ããã10æåãšå ¥åãããšã99.9ããŒã»ã³ã¿ã€ã«ïŒ1000åã®1ïŒã®ããŒã«ã100ç§ããšã«è¡šç€ºãããŸãïŒ
ãããã«ãããããã³ãããŒã¯ãã®ä»£ããã«ã
cat
ã¯ãæ°åè¡ã§ã¯ãªãæ°çŸäžè¡ã®åºåãå«ãã³ãã³ãã誀ã£ãŠå®è¡ããå Žåã«
^C
ããã»ã¹ãäžæã§ãããã©ããã«é¢å¿ããããŸãã hyperããã³emacs-eshellãé€ããã»ãŒãã¹ãŠã®ã³ã³ãœãŒã«ããã®ãã¹ãã«åæ ŒããŸã-äž¡æ¹ãšãå°ãªããšã10åéããªãŒãºããŸãïŒ10ååŸã«ã¿ã¹ã¯ã匷å¶çµäºããããã»ã¹ãçµäºããã®ãåŸ ã¡ãŸããïŒã
ãã®è¡šã«ã¯ãããã°ã©ã ã®ããŒãæã®ã¡ã¢ãªäœ¿çšéãå«ãŸããŠããŸããã³ã³ãœãŒã«ããã¹ããããšãã«ãã®ãã©ã¡ãŒã¿ãŒã䜿çšããããšãå€ãããã§ãã èµ·åæã®ã³ã³ãœãŒã«ãã¡ã¢ãªã§40 MBãå æããããšã¯å°ãå¥åŠã«æããŸããã3æ³ã®ã©ãããããã§ã16 GBã®RAMãã€ã³ã¹ããŒã«ãããŠããã®ã§ããããã®40 MBãã2 MBãæé©åããŠãããã°ã©ã ã«å®éã«ã¯åœ±é¿ããŸããã ãããŒãæè¿è²·ã£ã300ãã«ã®ãChromebookãã«ãã16 GBã®RAMãã€ã³ã¹ããŒã«ãããŠããŸããã
ãããã«
ã»ãšãã©ã®ã³ã³ãœãŒã«ã®å¿çæéã¯ååã«é·ããããéçºè ãæ°ããæ©èœãããã©ãŒãã³ã¹ã®ä»ã®åŽé¢ãè¿œå ããã®ã§ã¯ãªãããã®ãã©ã¡ãŒã¿ãŒã«çŠç¹ãåãããå Žåãããã°ã©ã ãæäœãããšãã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæ¹åããããã«æé©åã§ããŸãã ããããã³ã³ãœãŒã«ãã³ãããŒã¯ãæ¢ãããšãã«ãããã°ã©ã ã®äœæè ãäœãã®ããã©ãŒãã³ã¹ã枬å®ããå Žåã ãã㯠stdoutã®åºåé床ããããŒãæã®ã¡ã¢ãªäœ¿çšéã§ãã ããšãããããŸããã ããã¯æ²ããããšã§ããã»ãšãã©ã®ãé ããã³ã³ãœãŒã«ã¯ã人ã ãç解ã§ãããããæ°æ¡æ©ã
stdout
æ¢ã«çºè¡ããŠããããã
stdout
é床ã®ãããªãæé©åã¯ãã»ãšãã©ã®ãŠãŒã¶ãŒã®å®éã®ãŠãŒã¶ããªãã£ã«æ¯èŒç匱ã圱é¿ããŸãã ã³ã³ãœãŒã«ãå€ãã©ããããããŸãã¯ææ°ã®å®äŸ¡ãªã¢ãã«ã®ã¡ã¢ãªã®0.01ïŒ ã䜿çšããå ŽåãããŒãæã®ã¡ã¢ãªäœ¿çšéãåæžããããšã«ã€ããŠãåãããšãèšããŸãã
ã³ã³ãœãŒã«ã§äœæ¥ããŠããå Žåãå¿çæéãšå¯Ÿè©±æ§ã®æ¯èŒçåªããæé©åïŒããšãã°ã
^C
ãžã®åå¿ïŒãšãããŒãæã®ã¹ã«ãŒããããšã¡ã¢ãªäœ¿çšéã®æ¯èŒçå°ãªãæé©åãè¡ãããšãããéèŠãªå ŽåããããŸãã
æŽæ°ã ãã®èšäºãžã®åçãšããŠã alacrittyã¯ãé 延ã®é 延ãã©ãããæ¥ãŠãã©ã®ããã«æžããããšãã§ãããã説æããŸãã ã
ä»é²ïŒåŠå®çãªçµæ
Tmuxãšé 延ã ããŸããŸãªã³ã³ãœãŒã«ã§tmuxãããŒãžã£ãŒããã¹ãããŸããããéãã¯æž¬å®èª€å·®ã®ç¯å²å ã§ããããšãããããŸããã
ã·ã§ã«ãšé 延ã ããŸããŸãªã·ã§ã«ããã¹ãããŸããããæéã®ã³ã³ãœãŒã«ã§ãããããã®éãã¯æž¬å®èª€å·®ã®ç¯å²å ã§ããã ç§ã®å®éšçãªã»ããã¢ããã§ã¯ãPowershellãè²ãæ£ããåŠçããªããããPowershellããã§ãã¯ããã®ãå°ãå°é£ã§ããïŒå ¥åãããæåã®æåã¯ã³ã³ãœãŒã«ã®è²ã»ããã§å ¥åãããŸãããèšå®ã«é¢ä¿ãªãæ®ãã®æåã¯é»è²ã§ããã®ãã°ã¯éããããšããŠããããã§ã ïŒã䜿çšãããŸãã ãŸããPowershellã¯ã«ãŒãœã«ãåžžã«æ£ããå Žæã«é 眮ããããã§ã¯ãããŸãã -ç·ã«æ²¿ã£ãŠã©ã³ãã ã«ãžã£ã³ããããããç»åèªèèšå®ãä¹±ããŸãã ãããããããã®åé¡ã«ãããããããPowershellã¯ä»ã®ã·ã§ã«ãšåçã®ããã©ãŒãã³ã¹ãåããŠããŸãã
ã·ã§ã«ããã³æšæºåºåã®åž¯åå¹ ã åã®ã±ãŒã¹ãšåæ§ã«ãç°ãªãã·ã§ã«ã®éãã¯æž¬å®èª€å·®ã®ç¯å²å ã§ãã
åäžè¡ããã³è€æ°è¡ã®ããã¹ããšåž¯åå¹ ã äžéšã®ããã¹ããšãã£ã¿ãŒã¯éåžžã«é·ãè¡ã§åäœããŸãããã¹ã«ãŒãããã¯å®è³ªçã«å€ãããŸããããã®ãããªè¡ã1ã€å«ããã¡ã€ã«ãã³ã³ãœãŒã«ã«ããã·ã¥ãããã80æåã®è¡ã«åå²ããŸããã
ãã¥ãŒããã¯/ããŒã¿ã¹ããããšã©ãŒã ãããã®ãã¹ãã¯ã10.3æå/ç§ã®å ¥åé床ã§å®è¡ããŸããã ããããå ¥åé床ãé 延ã«å€§ããªåœ±é¿ãäžããªãããšãå€æããŸããã çè«çã«ã¯ãã³ã³ãœãŒã«ããã£ã±ãã«ãªãå¯èœæ§ããããéåžžã«é«ãå ¥åé床ã§æåã«ã¯ã©ãã·ã¥ããã®ã¯ãã€ããŒã§ãããããããã®é床ã¯ç§ãç¥ã£ãŠãã人ã®ããã¹ãå ¥åã®é床ãããã¯ããã«é«éã§ãã
ã¢ããªã±ãŒã·ã§ã³ïŒå®éšçã€ã³ã¹ããŒã«
ãã¹ãŠã®ãã¹ãã¯ã2014幎åã°ã®ãã¥ã¢ã«ã³ã¢Macbook Pro 13ã€ã³ã2.6 GHzã§å®æœãããŸããã ãã®ãã·ã³ã«ã¯16 GBã®RAMãš2560Ã1600æåã®ç»é¢è§£å床ããããŸãã OS XããŒãžã§ã³10.12.5ã LinuxïŒLubuntu 16.04ïŒã§ããã€ãã®ãã¹ããå®æœããŠãmacOSãšLinuxãæ¯èŒããŸããã åé 延枬å®ã¯ã10,000åã®ããŒã¹ãããŒã¯ã«å¶éãããŠããŸããã
枬å®ã¯ãã¿ã³ãæŒãããšã§å®è¡ãããŸãã
.
ããã©ã«ãã§ã¯
base32
ãšã³ã³ãŒãã£ã³ã°ã®åºåãã€ãŸãããã¬ãŒã³ASCIIããã¹ãã䜿çšããŸãã ãžã§ãŒãžãã³ã°ã¯ãããŸããŸãªçš®é¡ã®ããã¹ããé ä¿¡é床ã«åœ±é¿ãäžããå¯èœæ§ããããšããäºå®ã«æ³šç®ããŸããã
Terminal.appãéã©ãã³ãšã³ã³ãŒãã£ã³ã°ãçºè¡ãããšå€§å¹ ã«é ããªãããšã«æ°ä»ããŸããã ããã«ã¯3ã€ã®çç±ããããšæãïŒç°ãªããã©ã³ãããŒãžãããŒãããå¿ èŠæ§ãBasic Multilingual PlaneïŒBMPïŒå€ã®ã³ãŒããã€ã³ãã解æããå¿ èŠæ§ãUnicodeãã«ããã€ãæåã
ããããæåã®æ¹æ³ã¯ããã©ã³ãã°ãªãã®é 延èªã¿èŸŒã¿ããã©ãŒã«ããã¯ãã©ã³ãã®èšç®ãã°ãªãããŒãžã®ãã£ãã·ã¥ãªã©ã®éåžžã«è€éãªçµã¿åããã«ãªããŸãã
2çªç®ã¯å°ãæšæž¬ã§ãããTerminal.appã¯UTF16ã«åºã¥ãCocoa NSStringã䜿çšããããšããå§ãããŸããããã¯ããµãã²ãŒããã¢ã®ããã«ã³ãŒããã€ã³ããBMPãããé«ãå Žåãã»ãŒç¢ºå®ã«é床äœäžã«ã€ãªãããŸãã
ãã¹ããå®è¡ããåã«ãã³ã³ãœãŒã«ãå šç»é¢ã«å±éããŸããã ããã¯çµæã«åœ±é¿ããã³ã³ãœãŒã«ãŠã£ã³ããŠã®ãµã€ãºãå€æŽãããšããã©ãŒãã³ã¹ãå€§å¹ ã«å€ããå¯èœæ§ããããŸãïŒããšãã°ãä»ã®èŠçŽ ãå€æŽããã«ãŠã£ã³ããŠã®ãµã€ãºãå€æŽããããšã«ãããiterm2ãããéåžžã«é ãããããšãã§ããŸãïŒã macOSã®stã¯ãXQuartzã®äžã§ã¯ã©ã€ã¢ã³ãXãšããŠéå§ãããŸããã XQuartzãæ¬è³ªçã«é ãããŒãžã§ã³ããã¹ãããããã«ãXQuartzã䜿çšãããã1ã€ã®ããã€ãã£ããLinuxã³ã³ãœãŒã«runesãè©ŠããŸããã ã«ãŒã³æåã®ããŒã«é 延ã¯ãstããã³iterm2ãããã¯ããã«å°ããããšãå€æããŸããã
ãã¢ã³ããŒãããããã·ã¹ãã ã®é 延ãã¹ãã¯ãã·ã¹ãã ã®åèµ·åçŽåŸã«å®è¡ãããŸããã ãã¹ãŠã®ã¿ãŒããã«ã¯éããŠããŸããããããã¹ãã¯ãã®ãã¡ã®1ã€ã ãã«å ¥åãããŸããã
ããŒãäžã®ãã¹ãã¯ãRustã®ããã¯ã°ã©ãŠã³ãã³ã³ãã€ã«äžãã³ã³ãã€ã«éå§ãã15ç§åŸã«å®è¡ãããŸããã
ã³ã³ãœãŒã«ã¹ã«ãŒããããã¹ãã¯ãæ¬äŒŒã©ã³ãã ããã¹ããå«ã倧ããªãã¡ã€ã«ãäœæããããšã«ããå®è¡ãããŸããã
timeout 64 sh -c 'cat /dev/urandom | base32 > junk.txt'
ãã®åŸã®èµ·åã§
timeout 8 sh -c 'cat junk.txt | tee junk.term_name'
ã¿ãŒãããŒã¿ãŒãšurxvtã¯macOSã«ã€ã³ã¹ããŒã«ããã®ã¯ç°¡åãªæé ã§ã¯ãªãããããã¹ããããŠããŸãããããããæ©èœãããããšããã®ã¯é¢åã§ãã ã¿ãŒãããŒã¿ãŒã¯ãœãŒã¹ããç°¡åã«ã³ã³ãã€ã«ã§ããŸãããèµ·åæã«ããªãŒãºããã³ãã³ãã©ã€ã³ã¯è¡šç€ºãããŸããã Urxvtã¯brewçµç±ã§ã€ã³ã¹ããŒã«ãããŸãããäŸåé¢ä¿ã®1ã€ïŒãããbrewçµç±ã§ã€ã³ã¹ããŒã«ãããŸãïŒãééã£ãããŒãžã§ã³ã§ãã£ããããã³ã³ãœãŒã«ãããŒãã§ããŸããã§ããã