¹ØÓÚLinux KernelÖеĺ궨ÒålikelyºÍunlikely
ת×Ôhttp://blog.163.com/ericxia_gnikam/blog/static/969208792008102545614453/
ÔÚLinux kernelµÄÔ´´úÂëÖУ¬¾³£Äܼûµ½if(likely(x))»òif(unlikely(x))Ö®ÀàµÄÓ÷¨£¬ÆäÈ·Çк¬ÒåÐèҪ˵Ã÷һϣ¬ÒÔ±ã¸üºÃµÄÀí½âkernelµÄÔ´´úÂë¡£
likelyÓëunlikelyÕâÁ½¸öºêÔÚlinux/compiler.hÖе͍ÒåÈçÏ£º
#define likely(x) __builtin_expect(!!(x),1)
#define unlikely(x) __builtin_expect(!!(x),0)
ºÜÃ÷ÏÔ£¬ÐèÒªÏÈŪÇå³þÕâ¸ö__builtin_expect()º¯ÊýµÄÒâÒå¡£
__builtin_expect()ÊÇgccµÄÒ»¸öÄÚ½¨º¯Êý£¬ÆäÔÐÍÈçÏ£º
long __builtin_expect (long exp, long c);
¼Çס¸Ãº¯ÊýÓÉGCC±¾ÉíÌṩ£¬ÓÃÓÚÓÅ»¯´úÂë¡£Ö»ÖвÎÊýexpΪÈÎÒ»±í´ïʽ£¬c±ØÐëΪ³£Á¿Öµ£¬ÆäÒâÒåÊÇÔÚexp==cʱ£¬¸Ãº¯Êý·µ»Ø·Ç0Öµ£¬Òâ¼´Ï£Íûexp==c¡£
»Øµ½likelyºÍunlikely£¬likelyʵ¼ÊÊÇÏ£Íû±í´ïʽx==1£¬¼´±í´ïʽx³ÉÁ¢£¬²¢ÇÒÔÚ´úÂëʵ¼ÊÖ´ÐÐÖУ¬±í´ïʽxÔÚ¾ø´ó¶àÊýÇé¿öÏÂÊdzÉÁ¢µÄ£¬Ïà·´£¬unlikelyÊÇÏ£Íû±í´ïʽÔÚ¾ø´ó¶àÊýÇé¿öϲ»³ÉÁ¢£¬
Èç¹ûÓÐÏÂÁдúÂ룺
if(unlikely(a > b) {
foo();
}
Õâ¶Î´úÂëµÄÒâ˼ÊÇ£¬ÔÚ¾ø´ó¶àÊýÇé¿öÏÂa¡¡>¡¡bÕâ¸ö±í´ïʽÊDz»³ÉÁ¢µÄ£¬²»³ÉÁ¢Ê±Ö´Ðк¯Êýfoo().
ÁíÍâÓÐÒ»µãҪעÒâµÄÊÇ£¬ÓÉÓÚlikely¶¨ÒåʱÓõij£Á¿ÊÇ1£¬unlikelyÓõij£Á¿ÊÇ0£¬ÕâÕýºÃ·ûºÏc/c++ÓïÑÔÖÐbool±äÁ¿µÄʵ¼ÊÖµ£¬¶ø_builtin_expect()º¯Êý¶ÔexpÓëc½øÐÐÑϸñÏàµÈµÄ±È½ÏµÄ£¬
Òò´ËʹÓÃlikelyºÍunlikelyʱ£¬Æä²ÎÊýÓ¦¸ÃֻʹÓÃÂß¼±í´ïʽ£¬ÒòΪÂß¼±í´ïʽµÄÖµÖ»ÓÐ0»ò1¡£³ý·ÇÕæÒªÅжÏij¸ö±äÁ¿µÄÖµÊÇ1»ò0ʱ£¬²Å»á½«ÆäËüÀàÐ͵IJÎÊý´«¸ølikely»òunlikely¡£ÕâÒ»µã¿ÉÄܺܶàÈ˻᲻СÐÄÓÃ´í¡£
ʹÓÃÕâÁ½¸öºê¶¨ÒåµÄºÃ´¦ÊÇÓÅ»¯Ìõ¼þÅжÏ
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
ΪÁËÍ»³ö½²½âµÄ·½±ãÐÔ£¬ÎÒ°ÑÒÔǰ¹¤×÷ÖÐÕ䲨µÄһЩʵÑé¹ý³Ì¹±Ï׸ø´ó¼Ò¡££¨Î´¾ÔÊÐí£¬ÇëÎð×ªÔØ£© Ò»£®ÊµÑéÄ¿µÄ 1. Á˽âLinux²Ù×÷ϵͳµÄÆô¶¯ÓëµÇ¼·½·¨ 2. ÕÆÎÕ³£ÓÃRed Hat LinuxÃüÁîµÄʹÓ÷½·¨£¬ÕÆÎÕͼÐÎÓû§½çÃæÏµĻù±¾²Ù×÷ 3. Á˽âLinuxÃüÁîÖвÎÊýÑ¡ÏîµÄÓ÷¨ºÍ×÷Óà 4. ÊìϤ²Ù×÷ϵͳµÄÃüÁî½Ó¿Ú¡¢Í¼ÐÎ ......
Procs
¡¡¡¡r: µÈ´ýÔËÐеĽø³ÌÊý b: ´¦ÔÚ·ÇÖжÏ˯Ãß״̬µÄ½ø³ÌÊý w: ±»½»»»³öÈ¥µÄ¿ÉÔËÐеĽø³ÌÊý¡£´ËÊýÓÉ linux ¼ÆËãµÃ³ö£¬µ« linux ²¢²»ºÄ¾¡½»»»¿Õ¼ä
¡¡¡¡Memory
¡¡¡¡swpd: ÐéÄâÄÚ´æÊ¹ÓÃÇé¿ö£¬µ¥Î»£ºKB
¡¡¡¡free: ¿ÕÏеÄÄڴ棬µ¥Î»KB
¡¡¡¡buff: ±»ÓÃÀ´×öΪ»º´æµÄÄÚ´æÊý£¬µ¥Î»£ºKB
¡¡¡¡Swap
¡¡¡¡si: ´Ó´ÅÅ ......
¼ò½é
ÕâÆªÎÄÕÂÖ÷Òª¼Ç¼ÎÒÔÚÊÔͼ½â¾öÈçºÎ¾¡¿ÉÄܾ«È·µØÔÚij¸öÌØ¶¨µÄʱ¼ä¼ä¸ôÖ´ÐÐijÏî¾ßÌåÈÎÎñʱµÄ˼·Àú³Ì£¬²¢ÔÚºóÆÚ¶ÔÏà¹ØµÄAPI½øÐеĹéÄɺÍ×ܽᣬÒÔ±¸²Î¿¼¡£
ÎÊÌâÒý³ö
ºÜ¶àʱºò£¬ÎÒÃÇ»áÓÐÀàËÆ“ÿ¸ô¶à³¤Ê±¼äÖ´ÐÐijÏîÈÎÎñ
”µÄÐèÇó£¬Õ§¿´Õâ¸öÎÊÌâ²¢²»Äѽâ¾ö£¬ÊµÔò²¢²»ÈÝÒ×£¬ÓкܶàÒþº¬Ìõ¼þÐèÒª¿¼ÂÇ£¬Ö ......