å½æ们æå°ä¸é¨ç¼ç¨è¯è¨çæçæ¶ï¼é常æ两å±ææï¼ç¬¬ä¸æ¯å¼åæçï¼è¿æ¯å¯¹ç¨åºåèè¨ï¼å®æç¼ç æéè¦çæ¶é´ï¼å¦ä¸ä¸ªæ¯è¿è¡æçï¼è¿æ¯å¯¹è®¡ç®æºèè¨ï¼å®æ计ç®ä»»å¡æéè¦çæ¶é´ãç¼ç æçåè¿è¡æçå¾å¾æ¯é±¼ä¸çæçå
³ç³»ï¼æ¯å¾é¾åæ¶å
¼é¡¾çãä¸åçè¯è¨ä¼æä¸åç侧éï¼pythonè¯è¨æ¯«æ çé®æ´å¨ä¹ç¼ç æçï¼life is shortï¼we use pythonã
è½ç¶ä½¿ç¨pythonçç¼ç¨äººåé½åºè¯¥æ¥åå
¶è¿è¡æçä½çäºå®ï¼ä½pythonå¨è¶å¤è¶æ¥çé¢åé½æ广æ³åºç¨ï¼æ¯å¦ç§å¦è®¡ç® ãwebæå¡å¨çãç¨åºåå½ç¶ä¹å¸æpythonè½å¤è¿ç®å¾æ´å¿«ï¼å¸æpythonå¯ä»¥æ´å¼ºå¤§ã
é¦å
ï¼pythonç¸æ¯å
¶ä»è¯è¨å
·ä½æå¤æ
¢ï¼è¿ä¸ªä¸ååºæ¯åæµè¯ç¨ä¾ï¼ç»æè¯å®æ¯ä¸ä¸æ ·çãè¿ä¸ªç½åç»åºäºä¸åè¯è¨å¨åç§caseä¸çæ§è½å¯¹æ¯ï¼è¿ä¸é¡µæ¯python3åC++ç对æ¯ï¼ä¸é¢æ¯ä¸¤ä¸ªcaseï¼
pythonè¿ç®æçä½ï¼å
·ä½æ¯ä»ä¹åå å¢ï¼ä¸åç½åä¸äº
第ä¸ï¼pythonæ¯å¨æè¯è¨
ä¸ä¸ªåéææå对象çç±»åå¨è¿è¡æ¶æç¡®å®ï¼ç¼è¯å¨åä¸äºä»»ä½é¢æµï¼ä¹å°±æ ä»ä¼åã举ä¸ä¸ªç®åçä¾åï¼ãr = a + bããaåbç¸å ï¼ä½aåbçç±»åå¨è¿è¡æ¶æç¥éï¼å¯¹äºå æ³æä½ï¼ä¸åçç±»åæä¸åçå¤çï¼æ以æ¯æ¬¡è¿è¡çæ¶åé½ä¼å»å¤æaåbçç±»åï¼ç¶åæ§è¡å¯¹åºçæä½ãèå¨éæè¯è¨å¦C++ä¸ï¼ç¼è¯çæ¶å就确å®äºè¿è¡æ¶ç代ç ã
å¦å¤ä¸ä¸ªä¾åæ¯å±æ§æ¥æ¾ï¼å
³äºå
·ä½çæ¥æ¾é¡ºåºå¨ãpythonå±æ§æ¥æ¾ãä¸æ详ç»ä»ç»ãç®èè¨ä¹ï¼è®¿é®å¯¹è±¡çæ个å±æ§æ¯ä¸ä¸ªé常å¤æçè¿ç¨ï¼èä¸éè¿åä¸ä¸ªåé访é®å°çpython对象è¿é½å¯è½ä¸ä¸æ ·ï¼åè§Lazy propertyçä¾åï¼ãèå¨Cè¯è¨ä¸ï¼è®¿é®å±æ§ç¨å¯¹è±¡çå°åå ä¸å±æ§çå移就å¯ä»¥äºã
第äºï¼pythonæ¯è§£éæ§è¡ï¼ä½æ¯ä¸æ¯æJITï¼just in time compilerï¼ãè½ç¶å¤§åé¼é¼çgoogleæ¾ç»å°è¯Unladen Swallow è¿ä¸ªé¡¹ç®ï¼ä½æç»ä¹æäºã
第ä¸ï¼pythonä¸ä¸åé½æ¯å¯¹è±¡ï¼æ¯ä¸ªå¯¹è±¡é½éè¦ç»´æ¤å¼ç¨è®¡æ°ï¼å¢å äºé¢å¤çå·¥ä½ã
第åï¼python GIL
GILæ¯Pythonæ为è¯ç
çä¸ç¹ï¼å 为GILï¼pythonä¸çå¤çº¿ç¨å¹¶ä¸è½çæ£ç并åãå¦ææ¯å¨IO boundçä¸å¡åºæ¯ï¼è¿ä¸ªé®é¢å¹¶ä¸å¤§ï¼ä½æ¯å¨CPU BOUNDçåºæ¯ï¼è¿å°±å¾è´å½äºãæ以ç¬è
å¨å·¥ä½ä¸ä½¿ç¨pythonå¤çº¿ç¨çæ
åµå¹¶ä¸å¤ï¼ä¸è¬é½æ¯ä½¿ç¨å¤è¿ç¨ï¼pre forkï¼ï¼æè
å¨å ä¸åç¨ãå³ä½¿å¨å线ç¨ï¼GILä¹ä¼å¸¦æ¥å¾å¤§çæ§è½å½±åï¼å 为pythonæ¯æ§è¡100个opcodeï¼é»è®¤ï¼å¯ä»¥éè¿sys.setcheckinterval()设置ï¼å°±ä¼å°è¯çº¿ç¨çåæ¢ï¼å
·ä½çæºä»£ç å¨ceval.c::PyEval_EvalFrameExã
第äºï¼åå¾åæ¶ï¼è¿ä¸ªå¯è½æ¯ææå
·æåå¾åæ¶çç¼ç¨è¯è¨çéç
ãpythonéç¨æ è®°åå代çåå¾åæ¶çç¥ï¼æ¯æ¬¡åå¾åæ¶çæ¶åé½ä¼ä¸ææ£å¨æ§è¡çç¨åºï¼é ææè°çé¡¿å¡ãinfoqä¸æä¸ç¯æç« ï¼æå°ç¦ç¨PythonçGCæºå¶åï¼Instagramæ§è½æåäº10%ãæå
´è¶£ç读è
å¯ä»¥å»ç»è¯»ã
温馨提示:内容为网友见解,仅供参考