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


3¡¢Ï̱߳êʶ
    º¯ÊýÔ­ÐÍ£º
   
#include <pthread.h>
pthread_t pthread_self(void);
pid_t getpid(void);
    getpid()ÓÃÀ´È¡µÃÄ¿Ç°½ø³ÌµÄ½ø³Ìʶ±ðÂë,º¯Êý˵Ã÷
    Àý³Ì8
    ³ÌÐòÄ¿µÄ£ºÊµÏÖÔÚн¨Á¢µÄÏß³ÌÖдòÓ¡¸ÃÏ̵߳ÄidºÍ½ø ......

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ΪÍø¿¨¾²Ì¬ÅäÖÃIPµØÖ·µÈ

linuxÖÐÓÃifconfigΪÍø¿¨ÅäÖÃIPµØÖ·µÈ£¬ÔÚϵͳÖØÆôºó¾ÍʧЧÁË¡£ÎªÁ˱£Ö¤ÅäÖÃÓÀ¾ÃÉúЧ£¬ÐèÒª²ÉÓÃÐÞ¸ÄÅäÖÃÎļþµÄ¾²Ì¬ÅäÖ÷½·¨£¬×ܽáÈçÏ£º
1. cd /etc/sysconfig/network-scripts¡£
2. vi ifcfg-eth0(Ò²¿ÉÄÜÊÇeth1£¬eth2£¬·Ö±ð¶ÔÓ¦²»Í¬µÄÍø¿¨)
3. ÅäÖÃÄÚÈÝÈçÏ£º
    DEVICE=eth0   //Íø¿¨É豸à ......

linux±¸·ÝmysqlÊý¾Ý¿â

¡¡MYSQL¶¨ÆÚ±¸·ÝÊÇÒ»ÏîÖØÒªµÄ¹¤×÷£¬µ«È˹¤²Ù×÷Ì«·±Ëö£¬Ò²ÄѱÜÃâÓÐËùÊè©£¬Ê¹ÓÃÏÂ
ÃæµÄ·½·¨¼´¿ÉÈÃϵͳ¶¨ÆÚ±¸·ÝÊý¾Ý¡£
¡¡¡¡1¡¢´´½¨±¸·ÝÎļþ¼Ð
¡¡¡¡#cd /www
¡¡¡¡#makedir backup
¡¡¡¡2¡¢±àдÔËÐнű¾
¡¡¡¡#vi autobackup
¡¡¡¡Ð´ÈëÒÔÏÂÄÚÈÝ£º
¡¡¡¡filename=`date +%Y%m%d`
¡¡¡¡mysql_bin_dir/mysqldump –opt da ......

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

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