ããé¨ç½²ç®åãGo ç¼è¯çæçæ¯ä¸ä¸ªéæå¯æ§è¡æ件ï¼é¤äº glibc å¤æ²¡æå
¶ä»å¤é¨ä¾èµãè¿è®©é¨ç½²åå¾å¼å¸¸æ¹ä¾¿ï¼ç®æ æºå¨ä¸åªéè¦ä¸ä¸ªåºç¡çç³»ç»åå¿
è¦ç管çãçæ§å·¥å
·ï¼å®å
¨ä¸éè¦æå¿åºç¨æéçåç§å
ãåºçä¾èµå
³ç³»ï¼å¤§å¤§åè½»äºç»´æ¤çè´æ
ãè¿å Python æç巨大çåºå«ãç±äºåå²çåå ï¼Python çé¨ç½²å·¥å
·çæç¸å½æ··ä¹±ãæ¯å¦ setuptools, distutils, pip, buildout çä¸åéç¨åºå以åå
¼å®¹æ§é®é¢ããå®æ¹ PyPI æºåç»å¸¸åºé®é¢ï¼éè¦æ建ç§æéåï¼èç»´æ¤è¿ä¸ªéååè¦è±è´¹ä¸å°æ¶é´åç²¾åã
ãã并åæ§å¥½ãGoroutine å channel 使å¾ç¼åé«å¹¶åçæå¡ç«¯è½¯ä»¶åå¾ç¸å½å®¹æï¼å¾å¤æ
åµä¸å®å
¨ä¸éè¦èèéæºå¶ä»¥åç±æ¤å¸¦æ¥çåç§é®é¢ãå个 Go åºç¨ä¹è½ææçå©ç¨å¤ä¸ª CPU æ ¸ï¼å¹¶è¡æ§è¡çæ§è½å¥½ãè¿å Python ä¹æ¯å¤©å£¤ä¹æ¯ãå¤çº¿ç¨åå¤è¿ç¨çæå¡ç«¯ç¨åºç¼åèµ·æ¥å¹¶ä¸ç®åï¼èä¸ç±äºå
¨å±é GIL çåå ï¼å¤çº¿ç¨ç Python ç¨åºå¹¶ä¸è½ææå©ç¨å¤æ ¸ï¼åªè½ç¨å¤è¿ç¨çæ¹å¼é¨ç½²ï¼å¦æç¨æ ååºéç multiprocessing å
åä¼å¯¹çæ§å管çé æä¸å°çææãæ们ç¨ç supervisor 管çè¿ç¨ï¼å¯¹ fork æ¯æä¸å¥½ããé¨ç½² Python åºç¨çæ¶åé常æ¯æ¯ä¸ª CPU æ ¸é¨ç½²ä¸ä¸ªåºç¨ï¼è¿ä¼é æä¸å°èµæºç浪费ï¼æ¯å¦å设æ个 Python åºç¨å¯å¨åéè¦å ç¨ 100MB å
åï¼èæå¡å¨æ 32 个 CPU æ ¸ï¼é£ä¹çä¸ä¸ªæ ¸ç»ç³»ç»ãè¿è¡ 31 个åºç¨å¯æ¬å°±è¦æµªè´¹ 3GB çå
åèµæºã
ããè¯å¥½çè¯è¨è®¾è®¡ãä»å¦æ¯çè§åº¦è®² Go è¯è¨å
¶å®é常平庸ï¼ä¸æ¯æ许å¤é«çº§çè¯è¨ç¹æ§ï¼ä½ä»å·¥ç¨çè§åº¦è®²ï¼Go ç设计æ¯é常ä¼ç§çï¼è§è足å¤ç®åçµæ´»ï¼æå
¶ä»è¯è¨åºç¡çç¨åºåé½è½è¿
éä¸æãæ´éè¦çæ¯ Go èªå¸¦å®åçå·¥å
·é¾ï¼å¤§å¤§æé«äºå¢éåä½çä¸è´æ§ãæ¯å¦ gofmt èªå¨æç Go 代ç ï¼å¾å¤§ç¨åº¦ä¸æç»äºä¸å人åç代ç æçé£æ ¼ä¸ä¸è´çé®é¢ãæç¼è¾å¨é
ç½®æå¨ç¼è¾åæ¡£çæ¶åèªå¨è¿è¡ gofmtï¼è¿æ ·å¨ç¼å代ç çæ¶åå¯ä»¥éæææ¾ä½ç½®ï¼åæ¡£çæ¶åèªå¨åææ£ç¡®æçç代ç ãæ¤å¤è¿æ gofix, govet çé常æç¨çå·¥å
·ã
ããæ§è¡æ§è½å¥½ãè½ç¶ä¸å¦ C å Javaï¼ä½é常æ¯åç Python åºç¨è¿æ¯é«ä¸ä¸ªæ°é级çï¼éåç¼åä¸äºç¶é¢ä¸å¡ãå
åå ç¨ä¹é常çã
ãã
温馨提示:答案为网友推荐,仅供参考