ããã°ã©ãã³ã°è¨èªã®æ§è½ã«ã¤ãã¦ã®èã
èªåã®èããã¾ã¨ãããã®ã§ãã
åæã¨ãã¦ããã°ã©ãã³ã°è¨èªéã®æ§è½ãã³ããã¼ã¯ã¯å¥½ãã§ã¯ããã¾ããã ãã®è¨äºã§æ¸ãã¦ããèªåã®èãã«åºã¥ãã¨ãã¾ãæå³ã®ãªããã®ã ããã§ãã
æ¬é¡
ããã°ã©ãã³ã°è¨èªã®æ§è½ã«ã¤ãã¦ã¯å¾ãããæ§è½ã¨ãã®ããã«å¿ è¦ãªã³ã¹ãã®æ²ç·(ã³ã¹ãæ²ç·)ãæèãããã¨ãæãéè¦ã ã¨èãã¦ãã¾ãã (ç¡éã®ã³ã¹ããæå ¥ããã°ã©ã®è¨èªã«ããã¦ãåãæ§è½ã«å°éããã¨ä»®å®ãã¦ãã¾ã)
ã³ã¹ãæ²ç·ã«ã¤ãã¦ã¯ä»¥ä¸ã®ãã¨ãèãã¦ãã¾ãã
ãã¸ãã¹ã®å ´åã¯æå ¥ã§ããã³ã¹ããä¸å®ã¨ããã¨ãã«æå¤§ã®å©çãå¾ãããããã°ã©ãã³ã°è¨èªãé¸ã¶ã®ããã
ã³ã¹ãæ²ç·ã¯äººã®ã¹ãã«ã«ä¾åãã
- å¦ç¿ãªãæ¡ç¨ãªãã§äººã«ã¹ãã«ã«å¯¾ãã¦ã³ã¹ããæããã¨ã§ã³ã¹ãæ²ç·ãå¤åãã
ã³ã¹ãæ²ç·ã¯å¯¾è±¡ã®é åã«ä¾åãã
- 対象ã®é åã«ãããã¹ããããé«éãªã©ã¤ãã©ãªãããå ´åã¯èªåãã¡ä»¥å¤ã®èª°ãã代ããã«ã³ã¹ããæã£ã¦ããã¦ãã
- ã·ã¹ãã ã®æ§è½ã«ããããã®ããã°ã©ãã³ã°è¨èªãé¢ä¸ãã¦ããå²åãä½ãå ´åããã
- I/Oãå ããå²åãå¤ã(åºæ¬çã«ã¯ SQL ãæããã ããªã©)
ã³ã¹ãæ²ç·ã¯ã©ã³ã¿ã¤ã ãã³ã³ãã¤ã©ãæ§è½å¨ãã®ã¨ã³ã·ã¹ãã ã®è³ªã«ä¾åãã
- ãã¸ãã¹ããã¼ã , 対象é åãèæ ®ããªãå ´åã¯ãããä¸çªéè¦ãªè¦ç´ ã«ãªã
- JIT, PGO, LTO, auto vectorization, ...
- ãããã¡ã¤ãªã³ã°ãã¼ã«ããã³ããã¼ã¯ãã¼ã«
- ç¶ç¶çãããã¡ã¤ãªã³ã°
- pprof, jfr, perf, ebpf
ä¾ãã° Rust ãããç¨åº¦ããã人ãªã®ã§ããã°ã³ã³ãã¤ã©ã®æ§è½ãã©ã³ã¿ã¤ã ã«ããä½ãã³ã¹ãã§ååãªæ§è½ãå¾ããããªã©ã§ãã
åã®å ´åã 㨠Go ã§ã¯è¨èªèªä½ã®ç¿ç㨠testing.B, pprof, PGO ã®ãããã§ä½ãã³ã¹ãã§ååãªæ§è½ãå¾ããã¦ãã¾ãã ç¹ã« pprof ã®ãããã§ãããã³ã¹ããä½ããªã£ã¦ãããã¨ãæãã¦ãã¾ãã ãªã®ã§å人çã«æ§è½ã¨ãã観ç¹ã§ã¯æ§è½æ¹åã®ãµã¤ã¯ã«ãåãããããã¨(ãããã¡ã¤ãªã³ã°ãããããã¨ããã³ããã¼ã¯ãæ¸ãããããã¨)ãéè¦è¦ãã¦ãã¾ãã
ããã°ã©ãã³ã°è¨èªã®æ§è½ã«ã¤ãã¦è©±ãã¨ãã¯èªåã¯ã©ã®åæãããã¦ããããæèããã¨ä¸æ¯ãªè°è«ãé¿ãããã¨ãã§ããã¯ãã§ãã
ããããæ§è½ä»¥å¤ã«ãèæ ®ããã¹ããã¨ã¯å¤ããã£ã¦ããã ãã§ããã°ã©ãã³ã°è¨èªãé¸ã¶ãã¨ã¯ãã¾ãããã¾ããã ãã ãã¸ãã¹ã®å©çæ§é ã¨ãã¦æ§è½ãé常ã«éè¦ãªã±ã¼ã¹ãè¦æ¨¡ãå°æ¥ã®ãã¨ãèæ ®ãã¦ããå©çãã§ããã®ã«ä¹ãæããã±ã¼ã¹ã¯ç¾å®çã«ããã¨æãã¾ãã æ§è½ã®è©±é¡ãã§ãã¨ããã®è¨äºã§æ¸ãããã¨ãèæ ®ãã¦ãè¯ãã®ã§ã¯ãªãã§ããããã