Äں˼¶Çý¶¯³ÌÐò£º¶ÔÓÚÐèÒª¼«¸ßÐÔÄܵÄÓ¦Ó㬿ÉÒÔ¿ª·¢Äں˼¶Çý¶¯³ÌÐò£¬Ö±½ÓÓëÓ²¼þ½»»¥£¬¼õÉÙÖмä²ãµÄ¿ªÏú¡£ÀýÈ磬¸ßÐÔÄÜÍøÂçÉ豸»òÕßʵʱϵͳÖУ¬Äں˼¶Çý¶¯ÄÜÏÔÖøÌá¸ßÐÔÄÜ¡£
ÄÚºËÇÀÕ¼£ºÔÚʵʱϵͳÖУ¬ÄÚºËÇÀÕ¼£¨kernelpreemption£©¼¼Êõ¿ÉÒÔÈ·±£¸ßÓÅÏȼ¶ÈÎÎñÄܼ°Ê±ÏìÓ¦£¬¼õÉÙϵͳµÄÇÀÕ¼ÑÓ³Ù¡£
Äں˹²Ïí£ºÔÚ¶àºËϵͳÖУ¬Í¨¹ýºÏÀí·ÖÅäºÍ¹²ÏíÄÚºË×ÊÔ´£¬¿ÉÒÔ³ä·ÖÀûÓöàºËµÄ²¢ÐмÆËãÄÜÁ¦¡£ÀýÈ磬ʹÓù²ÏíÄڴ棨sharedmemory£©À´¼õÉÙͬ²½¿ªÏú¡£
ºÏÀí¹æ»®ÈÎÎñ£ºÖƶ¨ÏêϸµÄ¹¤×÷¼Æ»®£¬½«ÈÎÎñ·Ö½â²¢°´ÓÅÏȼ¶ÅÅÐò£¬ÓÐÖúÓÚÌá¸ß¹¤×÷ЧÂÊ¡£¶¨ÆÚÇåÀíºÍά»¤£º¶¨ÆÚÇåÀí²»±ØÒªµÄÎļþºÍ»º´æ£¬ÓÅ»¯ÏµÍ³ÐÔÄÜ£¬±£³ÖÈí¼þºÍϵͳµÄÎȶ¨ÔËÐС£ÀûÓÃÔÆ·þÎñ£º½èÖúÔÆ·þÎñ£¬¿ÉÒÔʵÏÖÊý¾ÝµÄ¿ìËÙ´æÈ¡ºÍÐͬ¹¤×÷£¬¼õÉÙ±¾µØ´æ´¢µÄ¸ºµ£¡£
¼«ÖÂЧÄÜáÛ·å:½âÎö¡°¸É±ÆÈí¼þ¡±µÄ½ø½×ʹÓü¼ÇÉÓëϵͳ¼¶ÓÅ»¯
ÔÚǰһ²¿·ÖÎÒÃÇÏêϸ̽ÌÖÁË¡°¸É±Æ?Èí¼þ¡±µÄ½ø½×ʹÓü¼ÇÉ£¬ÏÖÔÚÈÃÎÒÃǼÌÐøÉîÈ룬̽ÌÖÈçºÎͨ¹ýϵͳ¼¶ÓÅ»¯£¬½øÒ»²½ÌáÉýÄúµÄµçÄÔÐÔÄÜ£¬ÊµÏÖ¼«ÖÂЧÄÜ¡£
¼ÙÉèÎÒÃÇÓÐÒ»¸öÐèÒª¸ß²¢·¢·ÃÎʵÄWeb·þÎñ£¬¿ÉÒÔͨ¹ýʹÓÃNginx½øÐиºÔؾùºâºÍ»º´æÓÅ»¯À´ÌáÉýÐÔÄÜ¡£
server{listen80;server_nameexample.com;location/{proxy_passhttp://backend_server;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;#»º´æ¾²Ì¬×ÊÔ´location~*\.(jpg|jpeg|png|gif|ico|css|js)${expires30d;add_headerCache-Control"public";}}}
´úÂë½á¹¹ÓÅ»¯£º½«Êý¾Ý´¦ÀíÂß¼·Ö½â³É¶à¸ö¶ÀÁ¢Ä£¿é£¬Ã¿¸öÄ£¿é¸ºÔðÌØ¶¨¹¦ÄÜ£¬ÀýÈçÊý¾Ý¶ÁÈ¡¡¢Êý¾Ý´¦Àí¡¢Êý¾ÝÊä³öµÈ¡£Ê¹ÓÃÉè¼ÆÄ£Ê½£¬È繤³§Ä£Ê½À´¹ÜÀí¶ÔÏóµÄ´´½¨£¬±ÜÃ⸴ÔÓµÄÌõ¼þÂß¼¡£Êý¾Ý½á¹¹ºÍËã·¨ÓÅ»¯£ºÑ¡ÔñºÏÊʵÄÊý¾Ý½á¹¹£¬ÀýÈçʹÓùþÏ£±íÀ´¿ìËÙ²éÕÒÊý¾Ý£¬»òÕßʹÓöÓÁÐÀ´¹ÜÀíÈÎÎñµ÷¶È¡£
Ñ¡Ôñ¸ßЧµÄËã·¨£¬ÀýÈçʹÓÿìËÙÅÅÐò»òÕß·ÖÖη¨À´´¦Àí´óÊý¾Ý¼¯¡£ÄÚ´æ¹ÜÀíÓÅ»¯£ºÊ¹ÓÃÄÚ´æ³ØÀ´¹ÜÀí´óÁ¿µÄÄÚ´æ·ÖÅäºÍÊÍ·Å£¬¼õÉÙÆµ·±µÄÄÚ´æ·ÖÅ俪Ïú¡£¶¨ÆÚ¼ì²éÄÚ´æÐ¹Â©£¬²¢¼°Ê±ÐÞ¸´¡£¶àÏß³ÌÓÅ»¯£ºÊ¹ÓÃÏ̳߳ØÀ´¹ÜÀíºÍ¸´ÓÃÏß³Ì×ÊÔ´£¬±ÜÃâÆµ·±´´½¨ºÍÏú»ÙÏ̡߳£
ʹÓÃËø×ÔÓɼ¼ÊõÀ´Ìá¸ß¶àÏ̵߳IJ¢·¢ÐÔÄÜ£¬±ÜÃâËø¾ºÕù¡£ÏµÍ³¼¶ÓÅ»¯£ºÔÚCPU»º´æ²ãÃæ½øÐÐÓÅ»¯£¬¾¡Á¿¼õÉÙ»º´æÊ§Ð§£¬Ìá¸ß»º´æÃüÖÐÂÊ¡£ÓÅ»¯ÄÚ´æ·ÃÎÊģʽ£¬¼õÉÙÄÚ´æ?´ø¿íµÄÀ˷ѺÍÑÓ³Ù¡£ÔÚ²Ù×÷ϵͳ²ãÃæ£¬Ê¹ÓÃÄں˼¶Çý¶¯À´Ö±½ÓÓëÓ²¼þ½»»¥£¬¼õÉÙÖмä²ãµÄ¿ªÏú¡£
»ã±àÓÅ»¯£ºÔڹؼüÐÔÄÜ·¾¶ÉÏʹÓûã±àÓïÑÔ±àд´úÂ룬¿ÉÒÔÏÔÖøÌáÉýÐÔÄÜ¡£ÀýÈ磬¶ÔÐÔÄܹؼü·¾¶½øÐÐÊÖ¹¤ÓÅ»¯£¬¿ÉÒÔ¼õÉÙ²»±ØÒªµÄÖ¸ÁîºÍ¿ªÏú¡£
Ö¸ÁÓÅ»¯£º³ä·ÖÀûÓÃCPUµÄÌØ¶¨Ö¸Á£¬ÈçSIMD£¨SingleInstruction,MultipleData£©Ö¸Á¿ÉÒÔÔÚ´¦Àí´óÁ¿Êý¾ÝʱÌá¸ßÐÔÄÜ¡£
ÊÖ¹¤ÓÅ»¯£ºÔÚC/C++µÈ¸ß¼¶ÓïÑÔÖУ¬Í¨¹ýÊÖ¹¤ÓÅ»¯£¨manualoptimization£©£¬Èç¼õÉÙÑ»·Ç¶Ìס¢ÓÅ»¯»º´æÊ¹Óõȣ¬¿ÉÒÔÏÔÖøÌáÉý´úÂëµÄÖ´ÐÐЧÂÊ¡£
¡°¸É±ÆÈí¼þ¡±Í¨³£ÓµÓи´ÔÓµÄÄں˺Ͷà²ã´ÎµÄ¹¦ÄÜ¡£¶ÔÓÚÕâЩÈí¼þ£¬ÉîÈëÀí½âÆäÄÚ²¿½á¹¹ºÍ¹¤×÷ÔÀíÊǽø½×ʹÓõĵÚÒ»²½¡£¿ÉÒÔͨ¹ýÒÔϼ¸ÖÖ·½·¨À´ÊµÏÖ£º
¹Ù·½ÎĵµºÍ×ÊÁÏ£º×ÐϸÔĶÁ¹Ù·½ÌṩµÄʹÓÃÊֲᡢ¼¼ÊõÎĵµºÍÓû§Ö¸ÄÏ¡£ÔÚÏ߽̳̺ÍÊÓÆµ£ºÐí¶àÍøÂçÆ½Ì¨ÉÏÓÐÏêϸµÄ½Ì³ÌºÍÊÓÆµ£¬ÕâЩ×ÊÔ´ÄܰïÖúÄã¸üºÃµØÀí½âºÍʹÓÃÈí¼þ¡£ÉçÇø½»Á÷£º¼ÓÈëÏà¹ØµÄ¼¼ÊõÉçÇø»òÂÛ̳£¬ÓëÆäËû¸ß¼¶Óû§½»Á÷Ðĵ㬷ÖÏíʹÓþÑé¡£
ÔÚÐÅÏ¢»¯ºÍÖÇÄÜ»¯µÄ±³¾°Ï£¬¡°¸É±ÆÈí¼þ¡±µÄ¸ßЧʹÓúÍϵͳÓÅ»¯ÊÇʵÏÖ¸ßЧ¹¤×÷ºÍ´´ÐµÄÖØÒªÊֶΡ£Í¨¹ýÉîÈëÀí½âÈí¼þÄںˡ¢ÕÆÎո߼¶ÉèÖúÍ×Ô¶¨Òå¼¼ÇÉ¡¢ÓÅ»¯Êý¾Ý¹ÜÀíºÍÓ²¼þ×ÊÔ´ÅäÖã¬ÎÒÃÇ¿ÉÒÔ³ä·Ö·¢»ÓÕâЩ¸ßÐÔÄܹ¤¾ßµÄDZÁ¦£¬ÊµÏÖ¸ßЧµÄ¹¤×÷ºÍ´´Ð¡£
Ï£Íû±¾ÆªÎÄÕÂÄÜΪÄãÔÚʹÓ᰸ɱÆÈí¼þ¡±ºÍϵͳÓÅ»¯·½ÃæÌṩ¸ü¶àÓмÛÖµµÄÖ¸µ¼?£¬ÖúÄãÔÚרҵÁìÓòÈ¡µÃ¸ü´óµÄ³É¹¦¡£ÈÃÎÒÃǹ²Í¬Ì½Ë÷£¬½Ò¿ª¼«ÖÂЧÄܵÄÉñÃØÃæÉ´£¬ÊµÏÖ¹¤×÷ЧÂʵÄá۷壡
Èç¹ûÄãÓÐÈκξßÌåÎÊÌâ»òÐèÒª½øÒ»²½µÄ¼¼ÊõÖ§³Ö£¬»¶ÓËæÊ±ÌáÎÊ£¬ÎÒÃǽ«½ß³ÏΪÄã½â´ð¡£
ÔÚ±à³ÌÁìÓò£¬IDEÈçVisualStudioCodeºÍJetBrainsϵÁÐÊDZز»¿ÉÉٵġ°¸É±ÆÈí¼þ¡±¡£Í¨¹ý¶¨ÖÆ»¯ÅäÖúÍʹÓòå¼þ£¬¿ÉÒÔ´ó´óÌáÉý´úÂë±àдºÍµ÷ÊÔЧÂÊ¡£ÀýÈ磬ÔÚVisualStudioCodeÖУ¬¿ÉÒÔʹÓÃESLint²å¼þ½øÐдúÂë¸ñʽ»¯ºÍ¾²Ì¬·ÖÎö£¬Ê¹ÓÃGitLens²å¼þ½øÐдúÂë°æ±¾¿ØÖƺÍÀúÊ·²é?¿´£»ÔÚJetBrainsµÄPyCharmÖУ¬¿ÉÒÔʹÓÃReSharper²å¼þ½øÐдúÂëÖØ¹¹ºÍÖÇÄÜ´úÂ벹ȫ¡£
У¶Ô£ºÀîÑÞÇï