Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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²Ù×÷ϵͳϵĶàÏ̱߳à³ÌÏêϸ½âÎö£¨4£©


   º¯ÊýÔ­ÐÍ£º
   
#include <pthread.h>
void pthread_cleanup_push(void (*rtn)(void *),void *arg);
    º¯ÊýrtnÊÇÇåÀíº¯Êý£¬argÊǵ÷ÓòÎÊý
void pthread_cleanup_pop(int execute);
 
 
    ÔÚÇ°Ãæ½²¹ýÏ̵߳ÄÖÕÖ¹·½Ê½£¬ÊÇÕý³£ÖÕÖ¹»¹ÊÇ·Ç ......

Linux ϵÄÁ½¸ö½Å±¾

//videoserver
#!/bin/bash
#
# videoserver
#
# chkconfig: 3456 11 91
# description: videoserver
# Source function library.
. /etc/rc.d/init.d/functions
prog="videoserver"
start() {
# Start daemons.
echo -n $"Starting $prog: "
/video/videoserver/recordvideosvr /video/videoserver ......

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

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

Ò»²½Ò»Ñ§LinuxÓëWindows ¹²ÏíÎļþSamba £¨v0.2b£©

 
×÷Õߣº
±±ÄÏÄϱ±£¬ÕýÔÚÔö¼ÓÖÐ... ... ÐèÒªÄúµÄ²ÎÓ룻
À´×Ô£º
LinuxSir.Org
¼ò½é£º
±¾ÎÄÖ»Êǽ²Ò»½²ÎÒÃÇ×î³£ÓõÄLinuxÓëWindows¹²ÏíÎļþ£¬Ö÷ÒªÊÇΪÐÂÊÖָһָ·¡£ÈçºÎ½¨Á¢×î¼òµ¥µÄSamba·þÎñÆ÷£¬²¢½²ÊöÓöµ½ÎÊÌâÓ¦¸Ã´ÓºÎ´¦Ñ°ÕÒ½â¾ö·½°¸£»ÕýÔÚ¸üÐÂÖ®ÖУ¬Ï£ÍûÄúµÄ²Î¼Ó ... ... лл£»
Ŀ¼
 
0.1 ²é¿´Îļþ ......

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

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