LinuxϳÌÐòµÄProfile¹¤¾ß
LinuxϳÌÐòµÄProfile¹¤¾ß
ÎÒÃÇÔÚд³ÌÐò£¬ÌرðÊÇǶÈëʽ³ÌÐòµÄʱºò£¬Í¨³£ÐèÒª¶Ô³ÌÐòµÄÐÔÄܽøÐзÖÎö£¬ÒÔ±ã³ÌÐòÄܹ»¸ü¿ì¸üºÃµØÔËÐУ¬´ïµ½ÊµÊ±£¨real-time£©µÄÄ¿µÄ¡£Èç¹û³ÌÐòºÜ´ó£¬·ÖÎöÆðÀ´¾ÍºÜÀ§ÄÑ¡£Èç¹ûÓиö¹¤¾ßÄܹ»×Ô¶¯½øÐгÌÐòµÄÐÔÄÜ·ÖÎö£¬ÄǾÍ×îºÃÁË¡£ÕâÀï½éÉÜÒ»ÖÖLinuxϳÌÐòµÄProfiling¹¤¾ß----GNU profiler¡£
GNU gprofÄܹ»´òÓ¡³ö³ÌÐòÔËÐÐÖи÷¸öº¯ÊýÏûºÄµÄʱ¼ä£¬¿ÉÒÔ°ïÖú³ÌÐòÔ±ÕÒ³öÖڶຯÊýÖкÄʱ×î¶àµÄº¯Êý¡£²úÉú³ÌÐòÔËÐÐʱºòµÄº¯Êýµ÷ÓùØÏµ£¬°üÀ¨µ÷ÓôÎÊý£¬¿ÉÒÔ°ïÖú³ÌÐòÔ±·ÖÎö³ÌÐòµÄÔËÐÐÁ÷³Ì¡£ÓÐ Á˺¯ÊýµÄµ÷ÓùØÏµ£¬Õâ»áÈÿª·¢ÈËÔ±´ó´óÌá¸ß¹¤×÷ЧÂÊ£¬²»Ó÷ÑÉñµØÈ¥Ò»µãµãÕÒ³ö³ÌÐòµÄÔËÐÐÁ÷³Ì£¬Õâ¶ÔС³ÌÐòÀ´Ëµ¿ÉÄÜЧ¹û²»ÊǺÜÃ÷ÏÔ£¬µ«¶ÔÓÚÓм¸Íò£¬¼¸Ê®Íò´ú ÂëÁ¿µÄ¹¤³ÌÀ´Ëµ£¬Ð§ÂÊÊÇÎãÓ¹ÖÃÒɵģ¡¶øÇÒÕâ¸ö¹¦ÄܶÔÓÚά»¤¾É´úÂë»òÕßÊÇ·ÖÎöOpen SourceÀ´ËµÄÇÊÇÏ൱ÓÕÈ˵ģ¬ÓÐÁ˵÷ÓÃͼ£¬¶Ô³ÌÐòµÄÔËÐпò¼ÜÒ²¾ÍÓÐÁËÒ»¸ö´óÌåÁ˽⣬֪µÀÁ˳ÌÐòµÄ“¹Ç¼Ü“£¬·ÖÎöËüÒ²¾Í²»»áÔÙÄÇôãȻ£¬ÓÈÆäÊǶÔ×Ô¼º²» ÊìϤµÄ´úÂëºÍOpen Source¡£
gprofµÄ»ù±¾Ó÷¨£º
1£® ʹÓà -pg Ñ¡Ïî±àÒëºÍÁ´½ÓÄãµÄÓ¦ÓóÌÐò
ÔÚgcc±àÒë³ÌÐòµÄʱºò£¬¼ÓÉÏ-pgÑ¡ÏÀýÈ磺
gcc -pg -o test test.c
ÕâÑù¾ÍÉú³ÉÁË¿ÉÖ´ÐÐÎļþtest¡£Èç¹ûÊÇ´óÏîÄ¿£¬¾ÍÔÚmakefileÀïÃæÐ޸ıàÒëÑ¡Ï-pg·ÅÔÚÄÇÀï¶¼ÐС£
2£® Ö´ÐÐÄãµÄÓ¦ÓóÌÐòʹ֮Éú³É¹©gprof ·ÖÎöµÄÊý¾Ý
ÔËÐиղŵijÌÐò£º./test£¬ÕâÑù¾ÍÉú³ÉÁËÒ»¸ögmon.outÎļþ£¬¸ÃÎļþ¾Í°üº¬ÁËprofilingµÄÊý¾Ý¡£
3£® ʹÓÃgprof ·ÖÎöÄãµÄÓ¦ÓóÌÐòÉú³ÉµÄÊý¾Ý
gprof test gmon.out > profile.txt
ʹÓÃÉÏÃæµÄÃüÁgprof¾Í¿ÉÒÔ·ÖÎö³ÌÐòtestµÄÐÔÄÜ£¬½«profilingµÄ½á¹û·ÅÔÚprofile.txtÎļþÖУ¬´ò¿ª¾Í¿ÉÒÔ¿´µ½·ÖÎöµÄ½á¹û¡£Í¨¹ý¶Ô½á¹ûµÄ·ÖÎöÀ´¸Ä½øÎÒÃǵijÌÐò£¬´Ó¶ø´ïµ½ÎÒÃǵÄÄ¿µÄ¡£
GNU gprofÊǸöºÜ²»´íµÄ¹¤¾ß£¬´ó¼Òд³ÌÐòʱ¿ÉÒÔ¶àÓÃÓá£ÎÒÏÖÔÚÓÃgprofÀ´profilingÎҵijÌÐò£¬°ÑºÄʱ×î¶àµÄº¯Êý»òÔËËãÕÒ³öÀ´£¬ÓÃFPGAоƬʵÏÖ£¬´Ó¶ø´ïµ½real-timeµÄÄ¿µÄ¡£
gprofʹÓýéÉÜ
gprof½éÉÜ
gprofÊÇGNU profiler¹¤¾ß¡£¿ÉÒÔÏÔʾ³ÌÐòÔËÐеēflat profile”£¬°üÀ¨Ã¿¸öº¯ÊýµÄµ÷ÓôÎÊý£¬Ã¿¸öº¯ÊýÏûºÄµÄ´¦ÀíÆ÷ʱ¼ä¡£Ò²¿ÉÒÔÏÔʾ“µ÷ÓÃͼ”£¬°üÀ¨º¯ÊýµÄµ÷ÓùØÏµ£¬Ã¿¸öº¯Êýµ÷Óû¨·ÑÁ˶àÉÙʱ¼ä
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
Óùý aMule ¶¼ÖªµÀ£¬ÎÞÂÛÔõôÉèÖã¬ËüµÄËٶȶ¼²»ÁîÈËÂúÒâ¡£ÄÇôÔÚ Ubuntu ϳýÁË mldonkey »¹ÓÐʲôºÃÓõÄ¿×Ó£¿´ð°¸ÊÇ wine+emule£¬²»ÓÃÔõôÉèÖÃËÙ¶ÈÇáÇáËÉËɾÍÄÜ´ïµ½·åÖµ¡£Õâô×ö¿ÉÄÜһЩ Linux ËÀÖÒÃǻ᲻м£¬µ«ÎÞ¿É·ñÈÏ emule ¾ø¶Ô±È amule ÓÅÐ㣬¼ÈÈ»ÄÜÓÃΪʲô²»ÓÃÄØ£¿ÔÚ Windows ÉÏÎÒ¶¼»¹Óà mplayer ÄØ¡£
ÔÚ Ubu ......
I/OÖØ¶¨ÏòÏê½â¼°Ó¦ÓÃʵÀý
1¡¢ »ù±¾¸ÅÄÕâÊÇÀí½âºóÃæµÄ֪ʶµÄǰÌᣬÇëÎñ±ØÀí½â£©
a¡¢ I/OÖØ¶¨Ïòͨ³£Óë FDÓйأ¬shellµÄFDͨ³£Îª10¸ö£¬¼´ 0¡«9£»
b¡¢ ³£ÓÃFDÓÐ3¸ö£¬Îª0£¨stdin£¬±ê×¼ÊäÈ룩¡¢1£¨stdout£¬±ê×¼Êä³ö£©¡¢2£¨stderr£¬±ê×¼´íÎóÊä³ö£©£¬Ä¬ÈÏÓëkeyboard¡¢monitor¡¢monitorÓйأ»
c¡¢ Óà < À´¸Ä±ä¶Á½øµÄÊý ......
1£®4 Ï̴߳´½¨µÄLinuxʵÏÖ
ÎÒÃÇÖªµÀ£¬LinuxµÄÏß³ÌʵÏÖÊÇÔÚºËÍâ½øÐеģ¬ºËÄÚÌṩµÄÊÇ´´½¨½ø³ÌµÄ½Ó¿Údo_fork()¡£ÄÚºËÌṩÁËÁ½¸öϵͳµ÷ÓÃ__clone()ºÍfork ()£¬×îÖÕ¶¼Óò»Í¬µÄ²ÎÊýµ÷ÓÃdo_fork()ºËÄÚAPI¡£µ±È»£¬ÒªÏëʵÏÖỊ̈߳¬Ã»ÓкËÐÄ¶Ô¶à½ø³Ì£¨ÆäʵÊÇÇáÁ¿¼¶½ø³Ì£©¹²ÏíÊý¾Ý¶ÎµÄÖ§³ÖÊDz»Ðеģ¬Òò´Ë£¬do_fork()ÌṩÁ˺ ......