linux關ÓÚlikely與unlikely
ÔÀ´likelyºÍunlikelyÊÇÓÃÀ´±àÒëÓÅ»¯µÄ£¬Æäʵ¶¼¿ÉÒÔûÓС£ÎÒÃÇÖªµÀºÜ¶àcpuÀïÃæÓиæËß»º´æ£¬ÇÒÓÐÔ¤¶Á»úÖÆ£¬likelyºÍunlikely¾ÍÊÇÔö¼ÓÖ´ÐÐÅжÏÓï¾äʱµÄÃüÖÐÂÊ¡£
Èç¹ûÊÇif(lilely(a))£¬ËµÃ÷aÌõ¼þ·¢ÉúµÄ¿ÉÄÜÐÔ´ó£¬ÄÇôaÎªÕæµÄÓï¾äÔÚ±àÒë³É¶þ½øÖƵÄʱºò¾ÍÓ¦¸Ã½ô¸úÔÚÇ°Ãæ³ÌÐòµÄºóÃæ£¬ÕâÑù¾Í»á±»cacheÔ¤¶ÁÈ¡½øÈ¥£¬Ôö¼Ó³ÌÐòÖ´ÐÐËÙ¶È¡£ unlikelyÔòÊÇÕýºÃÏà·´¡£
kernelÀïÃæµÄ¶¨Ò壺
#ifndef __LINUX_COMPILER_H
#define __LINUX_COMPILER_H
/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented
a mechanism by which the user can annotate likely branch directions and
expect the blocks to be reordered appropriately. Define __builtin_expect
to nothing for earlier compilers. */
#if __GNUC__ == 2 && __GNUC_MINOR__ < 96
#define __builtin_expect(x, expected_value) (x)
#endif
#define likely(x) __builtin_expect((x),1)
#define unlikely(x) __builtin_expect((x),0)
#endif /* __LINUX_COMPILER_H */
¿ÉÒÔ¿´µ½ÔÚ2.96ÒÔǰ°æ±¾ÖУ¬gcc²¢Ã»ÓÐʵÏÖlilelyºÍunlikely¡£ÔÚgccÒÔºó°æ±¾ÖУ¬__builtin_expectÊÇgccµÄÄÚÖú¯Êý¡£
Ïà¹ØÎĵµ£º
ÕªÒª
ÎÒÃÇÔÚÕâÀïÌÖÂÛµÄÊǶÔǶÈëʽlinuxϵͳµÄÆô¶¯¹ý³ÌµÄÊä³öÐÅÏ¢µÄ×¢ÊÍ£¬Í¨¹ýÎÒÃǵÄÌÖÂÛ£¬´ó¼Ò»á¶ÔǶÈëʽlinuxÆô¶¯¹ý³ÌÖгöÏֵġ¢ÒÔǰ¸Ð¾õÊìϤµÄ¡¢µ«È´ÓÖËÆÊǶø·ÇµÄ¶«Î÷ÓÐÒ»¸öÈ·ÇеÄÁ˽⣬²¢ÇÒÄÜÁ˽⵽ÕâЩÊä³öÐÅÏ¢µÄÀ´ÁúÈ¥Âö¡£
ǶÈëʽlinuxµÄÆô¶¯ÐÅÏ¢ÊÇÒ»¸öºÜÖµµÃÎÒÃÇÈ¥ºÃºÃÑо¿µÄ¶«Î÷£¬ËüÄܽ«Ò»·ùËõӰͼ³ÊÏÖÔÚÎÒÃÇÃæÇ°£ ......
Linux»·¾³½ø³Ì¼äͨÐÅ£¨Ò»£©
¹ÜµÀ¼°ÓÐÃû¹ÜµÀ
Ö£ÑåÐË (mlinux@163.com)¹ú·À¿Æ´ó¼ÆËã»úѧԺ
2002 Äê 12 ÔÂ 11 ÈÕ
ÔÚ±¾ÏµÁÐÐòÖÐ×÷Õ߸ÅÊöÁË linux ½ø³Ì¼äͨÐŵļ¸ÖÖÖ÷ÒªÊֶΡ£ÆäÖйܵÀºÍÓÐÃû¹ÜµÀÊÇ×îÔçµÄ½ø³Ì¼äͨÐÅ»úÖÆÖ®Ò»£¬¹ÜµÀ¿ÉÓÃÓÚ¾ßÓÐÇ×Ôµ¹ØÏµ½ø³Ì¼äµÄͨÐÅ£¬ÓÐÃû¹ÜµÀ¿Ë·þÁ˹ܵÀûÓÐÃû×ÖµÄÏÞÖÆ£¬Òò´Ë£¬³ý¾ßÓйܵ ......
nginx("engine x")ÊÇÒ»¸ö¸ßÐÔÄܵÄHTTPºÍ·´Ïò´úÀí·þÎñÆ÷£¬ÊÇÓɶíÂÞ˹ÈËIgor Sysoev½¨Á¢µÄÏîÄ¿£¬³¬ÇáÁ¿¼¶£¬³¬¿ì´¦ÀíÄÜÁ¦¡£
ĿǰʹÓõÄnginx°æ±¾ÊÇ0.7.61
nginxµÄ¹ÙÑÔÍøÕ¾Îª£ºhttp://nginx.net/
ÏÂÔØµØÖ·Îª£ºhttp://sysoev.ru/nginx/nginx-0.7.61.tar.gz
nginxÐèÒªpcreµÄÖ§³Ö£¬ËùÒÔÎÒÃÇÐèÒªÏÂÔØpcre
pcreÈ«ÃûΪPerl Compa ......
×î½ü×¼±¸¸ø¹«Ë¾µÄÍøÕ¾¼Ü¹¹×öϵ÷Õû£¬°²×°²¿ÊðлúÆ÷µÄʱºòÓöµ½Ò»Ð©ÎÊÌ⣬nginxÔÚ°²×°µÄʱºòÒ»Ö±ÌáʾδÕÒµ½openssl
./configure --prefix=/usr/local/nginx
³ÌÐò´úÂë
./configure: error: the HTTP cache module requires md5 functions from OpenSSL library. You can either disable the module by us ......