Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¹ØÓÚ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¡£ÕâÒ»µã¿ÉÄܺܶàÈ˻᲻СÐÄÓÃ´í¡£
ʹÓÃÕâÁ½¸öºê¶¨ÒåµÄºÃ´¦ÊÇÓÅ»¯Ìõ¼þÅжÏ


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

ʵսLinux Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

LinuxÍø¹Ü±Ê¼Ç£¨£±£µ£©£ºÓëLinuxÏà¹ØµÄ½Ó¿Ú²âÊÔ

  ΪÁËÍ»³ö½²½âµÄ·½±ãÐÔ£¬ÎÒ°ÑÒÔǰ¹¤×÷ÖÐÕ䲨µÄһЩʵÑé¹ý³Ì¹±Ï׸ø´ó¼Ò¡££¨Î´¾­ÔÊÐí£¬ÇëÎð×ªÔØ£© Ò»£®ÊµÑéÄ¿µÄ 1. Á˽âLinux²Ù×÷ϵͳµÄÆô¶¯ÓëµÇ¼·½·¨ 2. ÕÆÎÕ³£ÓÃRed Hat LinuxÃüÁîµÄʹÓ÷½·¨£¬ÕÆÎÕͼÐÎÓû§½çÃæÏµĻù±¾²Ù×÷ 3. Á˽âLinuxÃüÁîÖвÎÊýÑ¡ÏîµÄÓ÷¨ºÍ×÷Óà 4. ÊìϤ²Ù×÷ϵͳµÄÃüÁî½Ó¿Ú¡¢Í¼ÐÎ ......

linux ϵͳÐÔÄܼàÊÓÃüÁîVmstat , iostat, sar

 
Procs
¡¡¡¡r: µÈ´ýÔËÐеĽø³ÌÊý b: ´¦ÔÚ·ÇÖжÏ˯Ãß״̬µÄ½ø³ÌÊý w: ±»½»»»³öÈ¥µÄ¿ÉÔËÐеĽø³ÌÊý¡£´ËÊýÓÉ linux ¼ÆËãµÃ³ö£¬µ« linux ²¢²»ºÄ¾¡½»»»¿Õ¼ä
¡¡¡¡Memory
¡¡¡¡swpd: ÐéÄâÄÚ´æÊ¹ÓÃÇé¿ö£¬µ¥Î»£ºKB
¡¡¡¡free: ¿ÕÏеÄÄڴ棬µ¥Î»KB
¡¡¡¡buff: ±»ÓÃÀ´×öΪ»º´æµÄÄÚ´æÊý£¬µ¥Î»£ºKB
¡¡¡¡Swap
¡¡¡¡si: ´Ó´ÅÅ ......

linux¶¨Ê±Æ÷

 
¼ò½é
ÕâÆªÎÄÕÂÖ÷Òª¼Ç¼ÎÒÔÚÊÔͼ½â¾öÈçºÎ¾¡¿ÉÄܾ«È·µØÔÚij¸öÌØ¶¨µÄʱ¼ä¼ä¸ôÖ´ÐÐijÏî¾ßÌåÈÎÎñʱµÄ˼·Àú³Ì£¬²¢ÔÚºóÆÚ¶ÔÏà¹ØµÄAPI½øÐеĹéÄɺÍ×ܽᣬÒÔ±¸²Î¿¼¡£
ÎÊÌâÒý³ö
ºÜ¶àʱºò£¬ÎÒÃÇ»áÓÐÀàËÆ“ÿ¸ô¶à³¤Ê±¼äÖ´ÐÐijÏîÈÎÎñ
”µÄÐèÇó£¬Õ§¿´Õâ¸öÎÊÌâ²¢²»Äѽâ¾ö£¬ÊµÔò²¢²»ÈÝÒ×£¬ÓкܶàÒþº¬Ìõ¼þÐèÒª¿¼ÂÇ£¬Ö ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ