Ñ¡ÔñºÏÊʵÄÊý¾Ý½á¹¹£º²î±ðµÄÊý¾Ý½á¹¹ÊÊÓÃÓÚ²î±ðµÄÓ¦Óó¡¾°¡£¡£¡£ÀýÈ磬£¬¹þÏ£±íÊÊÓÃÓÚ²éÕÒ²Ù×÷£¬£¬¶øÁ´±íÊÊÓÃÓÚÆµÈÔ²åÈëºÍɾ³ýµÄ²Ù×÷¡£¡£¡£
Ëã·¨ÖØÆ¯ºóÆÊÎö£ºÔÚÑ¡ÔñË㷨ʱ£¬£¬ÒªÆÊÎöÆäʱ¼äÖØÆ¯ºóºÍ¿Õ¼äÖØÆ¯ºó¡£¡£¡£Ö»¹ÜÑ¡Ôñ¸ü¸ßЧµÄ?Ëã·¨£¬£¬ÀýÈ磬£¬´ÓO(n^2)ÓÅ»¯µ½O(nlogn)¡£¡£¡£
¶¯Ì¬ÍýÏ룺¶¯Ì¬ÍýÏëÊÇÒ»ÖÖ½â¾öÖØ´óÎÊÌâµÄÒªÁ죬£¬Ëü¿ÉÒÔÏÔÖøÌáÉýËã·¨µÄЧÂÊ¡£¡£¡£ÀýÈ磬£¬ÔÚ½â¾ö±³°üÎÊÌâʱ£¬£¬¶¯Ì¬ÍýÏëÄܹ»ÓÐÓÃ×èÖ¹ÖØ¸´ÅÌËã¡£¡£¡£
ÕûÀíϵͳ×ÊÔ´½ûÓò»ÐëÒªµÄÆô¶¯ÏÔÚϵͳÆô¶¯Ê±£¬£¬½ûÓÃÄÇЩ²»³£ÓõijÌÐò£¬£¬¿ÉÒÔïÔÌϵͳ×ÊÔ´µÄÕ¼Ó㬣¬Ìá¸ßÆô¶¯ËÙÂÊ¡£¡£¡£É¾³ýÔÝʱÎļþ»ººÍ´æ£º°´ÆÚÕûÀíÔÝʱÎļþ»ººÍ´æ£¬£¬¿ÉÒÔÊÍ·Åϵͳ¿Õ¼ä£¬£¬ÌáÉýϵͳÔËÐÐËÙÂÊ¡£¡£¡£µ÷½âϵͳÉèÖõ÷½âÐéÄâÄڴ棺Êʵ±?µ÷½âÐéÄâÄÚ´æ´ó?С£¬£¬¿ÉÒÔÌáÉýϵͳµÄÔËÐÐËÙÂʺÍÎȹÌÐÔ¡£¡£¡£
ÓÅ»¯µçÔ´ÉèÖãºÑ¡Ôñ¸ßЧÄÜģʽ£¬£¬¿ÉÒÔÔÚ½ÚÄܺÍÐÔÄÜÖ®¼äÈ¡µÃƽºâ£¬£¬ÌáÉýϵͳÕûÌåÌåÏÖ¡£¡£¡£ÓÅ»¯Ó²¼þÉèÖÃÉý¼¶ÄÚ´æºÍÓ²ÅÌ£ºÉý¼¶µ½?¸ü¸ßÈÝÁ¿ºÍ¸ü¿ìËÙµÄÄÚ´æºÍÓ²ÅÌ£¬£¬¿ÉÒÔÏÔÖøÌáÉýϵͳÐÔÄÜ¡£¡£¡£ÕûÀíÉ¢ÈÈ£º¼á³ÖϵͳÄÚ²¿µÄÉ¢ÈÈÓÅÒ죬£¬¿ÉÒÔ±ÜÃâϵͳ¹ýÈÈ£¬£¬Ìá¸ßÓ²¼þµÄʹÓÃÊÙÃüºÍÎȹÌÐÔ¡£¡£¡£
ʹÓÃϵͳÓÅ»¯¹¤¾ßµÚÈý·½ÓÅ»¯Èí¼þ£ºÓÐÐí¶àÓÅÒìµÄϵͳÓÅ»¯¹¤¾ß£¬£¬¿ÉÒÔ×ÊÖúÄú×Ô¶¯¾ÙÐÐϵͳÕûÀí¡¢ÉèÖõ÷½âºÍÐÔÄÜÌáÉý¡£¡£¡£ÀýÈ磬£¬CCleaner¡¢AdvancedSystemCareµÈ¹¤¾ß¶¼ÊDz»´íµÄÑ¡Ôñ¡£¡£¡£°´ÆÚ¼ì²éºÍÐÞ¸´ÏµÍ³¹ýʧ£ºÊ¹ÓÃϵͳ×Ô´øµÄ?¹¤¾ß»òµÚÈý·½¹¤¾ß£¬£¬°´ÆÚ¼ì²éºÍÐÞ¸´ÏµÍ³¹ýʧ£¬£¬¿ÉÒÔ°ü¹ÜϵͳµÄÎȹÌÔËÐС£¡£¡£
ÔÚ±à³ÌÁìÓò£¬£¬IDEÈçVisualStudioCodeºÍJetBrainsϵÁÐÊDZز»¿ÉÉٵġ°¸É±ÆÈí¼þ¡±¡£¡£¡£Í¨¹ý¶¨ÖÆ»¯ÉèÖúÍʹÓòå¼þ£¬£¬¿ÉÒÔ´ó´ó?ÌáÉý´úÂë±àдºÍµ÷ÊÔЧÂÊ¡£¡£¡£ÀýÈ磬£¬ÔÚVisualStudioCodeÖУ¬£¬¿ÉÒÔʹÓÃESLint²å¼þ¾ÙÐдúÂëÃûÌû¯ºÍ¾²Ì¬ÆÊÎö£¬£¬Ê¹ÓÃGitLens²å¼þ¾ÙÐдúÂë°æ±¾¿ØÖƺÍÀúÊ·Éó²é£»£»ÔÚJetBrainsµÄPyCharmÖУ¬£¬¿ÉÒÔʹÓÃReSharper²å¼þ¾ÙÐдúÂëÖØ¹¹ºÍÖÇÄÜ´úÂ벹ȫ¡£¡£¡£
Ä£¿£¿é»¯Éè¼Æ£º½«´úÂëÆÊÎö³É¶à¸ö×ÔÁ¦µÄÄ£¿£¿é£¬£¬Ã¿¸öÄ£¿£¿é¾ßÓÐÌØ¶¨µÄ?¹¦Ð§£¬£¬±ãÓÚÖÎÀíºÍά»¤¡£¡£¡£Ä£¿£¿é»¯Éè¼ÆÒ²ÄÜÌá¸ß´úÂëµÄ¸´ÓÃÐԺͲâÊÔЧÂÊ¡£¡£¡£
ʹÓÃÉè¼ÆÄ£Ê½£ºÉè¼ÆÄ£Ê½ÊǾÓÉÖØ¸´ÑéÖ¤µÄ×î¼Ñʵ¼ù£¬£¬ËüÄÜ×ÊÖúÄã½â¾ö³£?¼ûµÄÉè¼ÆÎÊÌâ¡£¡£¡£ÀýÈ磬£¬Ê¹Óõ¥ÀýģʽÀ´¿ØÖƶÔijһ×ÊÔ´µÄ»á¼û£¬£¬»òÕßʹÓù¤³§Ä£Ê½À´ÖÎÀí¹¤¾ßµÄ½¨Éè¡£¡£¡£
¼ò»¯Âß¼£º×èÖ¹ÖØ´óµÄÌõ¼þÓï¾äºÍǶÌ×µÄÑ»·£¬£¬Ö»¹ÜʹÓþ«Á·Ã÷ÎúµÄ´úÂë¡£¡£¡£ÖØ´óµÄÂß¼²»µ«ÄÑÒÔÃ÷È·£¬£¬»¹»á½µµÍ´úÂëµÄÖ´ÐÐЧÂÊ¡£¡£¡£
ÿ¸ö¡°¸É±ÆÈí¼þ¡±¶¼ÓÐÆä¸ß¼¶¹¦Ð§£¬£¬ÕâЩ¹¦Ð§ÍùÍùÒþ²ØÔÚͨË×Óû§¿ÉÄܺöÂԵĽÇÂä¡£¡£¡£Í¨¹ýÉîÈëÏàʶÕâЩ¸ß¼¶¹¦Ð§£¬£¬¿ÉÒÔ´ó´óÌáÉýÊÂÇéЧÂÊ¡£¡£¡£ÀýÈ磬£¬ÔÚExcelÖУ¬£¬VBA£¨VisualBasicforApplications£©¾ç±¾¿ÉÒÔ×Ô¶¯»¯´¦Öóͷ£´ó×ÚÊý¾Ý£¬£¬¶øÔÚVisualStudioCodeÖУ¬£¬×Ô½ç˵²å¼þºÍÏÂÁî¿ÉÒÔ¼«´ó¼ò»¯´úÂë±àдÀú³Ì¡£¡£¡£
ºÏÀíÍýÏëʹÃü£ºÖƶ©ÏêϸµÄÊÂÇéÍýÏ룬£¬½«Ê¹ÃüÆÊÎö²¢°´ÓÅÏȼ¶ÅÅÐò£¬£¬ÓÐÖúÓÚÌá¸ßÊÂÇéЧÂÊ¡£¡£¡£°´ÆÚÕûÀíºÍά»¤£º°´ÆÚÕûÀí²»ÐëÒªµÄÎļþ»ººÍ´æ£¬£¬ÓÅ»¯ÏµÍ³ÐÔÄÜ£¬£¬¼á³ÖÈí¼þºÍϵͳµÄÎȹÌÔËÐС£¡£¡£Ê¹ÓÃÔÆÐ§ÀÍ£º½èÖúÔÆÐ§ÀÍ£¬£¬¿ÉÒÔʵÏÖÊý¾ÝµÄ¿ìËÙ´æÈ¡ºÍÐͬÊÂÇ飬£¬ïÔÌÍâµØ´æ´¢µÄ¼ç¸º¡£¡£¡£
¼«ÖÂЧÄÜáÛ·å:ÆÊÎö¡°¸É±ÆÈí¼þ¡±µÄ½ø½×ʹÓü¼ÇÉÓëϵͳ¼¶ÓÅ»¯
ÔÚǰһ²¿·ÖÎÒÃÇÏêϸ̽ÌÖÁË¡°¸É±ÆÈí¼þ¡±µÄ½ø½×ʹÓü¼ÇÉ£¬£¬ÏÖÔÚÈÃÎÒÃǼÌÐøÉîÈ룬£¬Ì½ÌÖÔõÑùͨ¹ýϵͳ¼¶ÓÅ»¯£¬£¬½øÒ»²½ÌáÉýÄúµÄµçÄÔÐÔÄÜ£¬£¬ÊµÏÖ¼«ÖÂЧÄÜ¡£¡£¡£
ϵͳµÄʵʱ¼à¿ØºÍÒ»Á¬µ÷ÓÅÊǰü¹ÜÈí¼þ¸ßЧÔËÐеÄÒªº¦£º
ÐÔÄÜ¼à¿Ø¹¤¾ß£ºÊ¹ÓÃÈçAPM£¨ApplicationPerformanceMonitoring£©¡¢ÏµÍ³¼à¿Ø¹¤¾ßµÈ£¬£¬ÊµÊ±¼à¿ØÈí¼þÐÔÄܺÍϵͳ×ÊԴʹÓÃÇéÐΡ£¡£¡£ÈÕÖ¾ÆÊÎö£ºÍ¨Ì«¹ýÎöϵͳºÍÈí¼þÈÕÖ¾£¬£¬·¢Ã÷ÐÔÄÜÆ¿¾±ºÍDZÔÚÎÊÌ⣬£¬¾ÙÐÐÓÐÕë¶ÔÐÔµÄÓÅ»¯¡£¡£¡£¸ºÔزâÊÔ£º°´ÆÚ¾ÙÐиºÔزâÊÔ£¬£¬ÏàʶÈí¼þÔڸ߸ºÔØÏµÄÌåÏÖ£¬£¬²¢¾ÙÐÐÏìÓ¦µÄÓÅ»¯µ÷½â¡£¡£¡£
ÔÚ¼«ÖÂЧÄܵÄ×·ÇóÖУ¬£¬¡°¸É±ÆÈí¼þ¡±µÄ½ø½×ʹÓü¼ÇɺÍϵͳ¼¶ÓÅ»¯ÊDz»¿É»òȱµÄÒ»²¿·Ö¡£¡£¡£Í¨¹ýÉîÈëÃ÷È·Èí¼þÄںˡ¢ÕÆÎո߼¶ÉèÖúÍ×Ô½ç˵¼¼ÇÉ¡¢ÓÅ»¯Êý¾ÝÖÎÀíºÍÓ²¼þ×ÊÔ´ÉèÖ㬣¬ÎÒÃÇ¿ÉÒÔ³ä·ÖÑéÕ¹ÕâЩ¸ßÐÔÄܹ¤¾ßµÄDZÁ¦£¬£¬ÊµÏÖ¸ßЧµÄÊÂÇéºÍÁ¢Òì¡£¡£¡£
Ï£Íû±¾ÎÄÄÜΪÄãÔÚʹÓ᰸ɱÆÈí¼þ¡±ºÍϵͳÓÅ»¯·½ÃæÌṩÓмÛÖµµÄÖ¸µ¼£¬£¬ÖúÄãÔÚרҵÁìÓòÈ¡µÃ¸ü´óµÄÀֳɡ£¡£¡£ÈÃÎÒÃÇÅäºÏ̽Ë÷£¬£¬½Ò¿ª¼«ÖÂЧÄܵÄÉñÃØÃæÉ´£¬£¬ÊµÏÖÊÂÇéЧÂʵÄá۷壡
CPU»º´æ?ÓÅ»¯£ºÔÚ³ÌÐòÉè¼ÆÖУ¬£¬Ö»¹ÜïÔÌCPU»º´æÊ§Ð§£¨cachemiss£©£¬£¬Í¨¹ýºÏÀíµÄÊý¾Ý½á¹¹ºÍ»á¼ûģʽÀ´Ìá¸ß»º´æÖÀÖÐÂÊ¡£¡£¡£
ÄÚ´æ´ø¿íÓëÑÓ³Ù£ºÓÅ»¯ÄÚ´æ»á¼ûµÄ·½·¨£¬£¬ïÔÌÄÚ´æ´ø¿íµÄÆÌÕźÍÑÓ³Ù¡£¡£¡£ÀýÈ磬£¬Ê¹ÓÃ¶ÔÆëÄڴ棨alignedmemory£©À´Ìá¸ß»á¼ûËÙÂÊ¡£¡£¡£
Ö¸Áî¼¶²¢ÐУºÊ¹ÓÃCPUµÄ³¬±êÁ¿£¨superscalar£©ºÍ³¬Á÷Ë®Ïߣ¨superpipeline£©¼Ü¹¹£¬£¬Í¨¹ýÖ¸Áî¼¶²¢ÐУ¨instruction-levelparallelism£©À´Ìá¸ßÖ´ÐÐЧÂÊ¡£¡£¡£
ͨ¹ý¶Ô¡°¸É±ÆÈí¼þ¡±µÄ½ø½×ʹÓü¼ÇɺÍϵͳ¼¶ÓÅ»¯µÄ̽ÌÖ£¬£¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬£¬ÎÞÂÛÊÇÔÚÊý¾ÝÆÊÎö¡¢±à³Ì¡¢ÏîÄ¿ÖÎÀíÕվɯäËûÁìÓò£¬£¬³ä?·ÖʹÓÃÕâЩ¸ßЧ¹¤¾ß£¬£¬²¢Á¬ÏµÏµÍ³¼¶ÓÅ»¯²½·¥£¬£¬¿ÉÒÔ´ó´óÌáÉýÊÂÇéЧÂÊ£¬£¬ïÔÌÈËΪ¹ýʧ£¬£¬²¢ÊµÏÖ¸ü¸ßµÄÊÂÇéÖÊÁ¿¡£¡£¡£Òò´Ë?£¬£¬ÎÞÂÛÄãËùÔÚµÄÐÐÒµ»òÁìÓò£¬£¬ÕÆÎÕÕâЩ¼¼ÇɺÍÒªÁì¶¼ÊÇÌáÉýСÎÒ˽¼ÒºÍÍŶӾºÕùÁ¦µÄÖ÷Ҫ;¾¶¡£¡£¡£
Ï£ÍûÕâÆªÈíÎÄÄÜΪÄãÌṩÓмÛÖµµÄÖ¸µ¼ºÍÁé¸Ð£¬£¬ÖúÄãÔÚÊÂÇéÖÐÈ¡µÃ¸ü´óµÄÀֳɣ¡ÈôÊÇÄãÓÐÈκÎÎÊÌâ»òÐèÒª½øÒ»²½µÄ×ÊÖú£¬£¬½Ó´ýËæÊ±ÁªÏµ¡£¡£¡£
#!/bin/bash#½ç˵Êä³öÎļþ·¾¶report_file='/path/to/performance_report.txt'#Çå¿Õ±¨¸æÎļþecho"">$report_file#Ìí¼ÓϵͳÐÔÄÜ¼à¿ØÊý¾Ýµ½±¨¸æÎļþvmstat>>$report_filedf-h>>$report_file