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

ʹÓà gperf ʵÏÖ¸ßЧµÄ C/C++ ÃüÁîÐд¦Àí


ʹÓà gperf ʵÏÖ¸ßЧµÄ C/C++ ÃüÁîÐд¦Àí
GNU ÍêÃÀ£¨gperf£©É¢Áк¯ÊýÉú³ÉÆ÷¼ò»¯¸´ÔÓµÄÊäÈë×Ö·û´®
ÎĵµÑ¡Ïî
¼¶±ð£º Öм¶
Arpan Sen
(arpan@syncad.com
), ¼¼ÊõÖ÷¹Ü, Synapti Computer Aided Design Pvt Ltd
2007 Äê 9 ÔÂ 10 ÈÕ
GNU µÄ gperf ¹¤¾ßÊÇÒ»ÖÖ “ÍêÃÀµÄ” É¢Áк¯Êý£¬¿ÉÒÔΪÓû§ÌṩµÄÒ»×éÌØ¶¨×Ö·û´®Éú³ÉÉ¢ÁÐ±í¡¢É¢Áк¯ÊýºÍ²éÕÒº¯ÊýµÄ C/C++ ´úÂ롣ͨ¹ý±¾ÎÄѧϰÈçºÎʹÓà gperf ʵÏÖ C/C++ ´úÂëÖиßЧµÄÃüÁîÐд¦Àí¡£
ÃüÁîÐд¦ÀíºÍ gperf µÄ×÷ÓÃ
ÃüÁîÐд¦ÀíÒ»Ö±ÒÔÀ´¶¼ÊÇÈí¼þ¿ª·¢ÖÐ×îÈÝÒ×±»ºöÊÓµÄÁìÓò¡£¼¸ºõËùÓбȽϸ´ÔÓµÄÈí¼þ¶¼¾ßÓÐһЩ¿ÉÓõÄÃüÁîÐÐÑ¡Ïî¡£ÊÂʵÉÏ£¬´óÁ¿ if-else
Óï¾ä¾­³£±»ÓÃÀ´´¦ÀíÓû§ÊäÈ룬Òò´Ëά»¤ÕâÖÖÒÅÁô´úÂëÏ൱·Ñʱ£¬¶Ô×ÊÉî³ÌÐòÔ±ÒàÊÇÈç´Ë¡£ÕâÖÖÇéÐÎÏ£¬ºÜ¶à C ¿ª·¢ÈËԱͨ³£Ê¹ÓÃÈß³¤£¨Í¨³£¶¼Ç¶Ì×ʹÓã©µÄ if-else
Óï¾ä£¬ÒÔ¼° ANSI C ¿âº¯Êý£¬ÀýÈç strcmp
¡¢strcasecmp
ºÍ strtok
×÷Ϊ²¹³ä£¬ÈçÇåµ¥ 1 Ëùʾ¡£

Çåµ¥ 1. C ÓïÑÔÑùʽµÄÃüÁîÐд¦Àí

if (strtok(cmdstring, "+dumpdirectory"))
{
// code for printing help messages goes here
}
else if (strtok(cmdstring, "+dumpfile"))
{
// code for printing version info goes here
}
C++ ¿ª·¢ÈËÔ±²¢Ã»ÓÐʹÓûùÓÚ ANSI C µÄÓ¦ÓóÌÐò±à³Ì½Ó¿Ú£¬¶øÊÇʹÓñê׼ģ°å¿â£¨Standard Template Library£¬STL£©ÖеÄ×Ö·û´®¡£¾¡¹ÜÈç´Ë£¬ÈÔÈ»ÎÞ·¨±ÜÃâʹÓÃǶÌ×µÄ if-else
ÐòÁÐÓï¾ä¡£ºÜÃ÷ÏÔ£¬Ëæ×ÅÃüÁîÐÐÑ¡Ïî²»¶ÏÔö¼Ó£¬ÕâÖÖ·½·¨È±·¦¿ÉÉìËõÐÔ¡£¶ÔÓÚ¾ßÓÐ N ¸öÑ¡ÏîµÄµäÐͳÌÐòµ÷Ó㬴úÂë×îÖÕÖ´ÐÐ 0£¨N2
£©±È½Ï¡£ÎªÁËÉú³ÉÔËÐиü¼Ó¿ì½Ý²¢Ò×ÓÚά»¤µÄ´úÂ룬ʹÓÃÉ¢ÁÐ±í´æ´¢ÃüÁîÐÐÑ¡ÏʹÓÃÉ¢ÁÐÑéÖ¤Óû§Ö¸¶¨µÄÊäÈ룬ÕâÖÖ·½·¨·Ç³£ÓаïÖú¡£
Õâ¾ÍÊÇ gperf °çÑݵĽÇÉ«¡£Ëü½«´ÓÔ¤¶¨µÄÓÐЧÃüÁîÐÐÑ¡ÏîÁбíºÍʱ¼ä¸´ÔÓ¶ÈΪ O(1) µÄ²éÕÒº¯ÊýÖÐÉú³ÉÒ»¸öÉ¢ÁÐ±í¡£Òò´Ë£¬¶ÔÓÚ¾ßÓÐ N ¸öÑ¡ÏîµÄµäÐͳÌÐòµ÷Ó㬴úÂëÖ»ÐèÖ´ÐÐ O(N) [N*O(1)]
±È½Ï — ÕâÊǶÔÒÅÁô´úÂëµÄ¾Þ´ó¸Ä½ø¡£
 
Gperf ʹÓÃģʽ
Gperf ½«´ÓÓû§ÌṩµÄÎļþÖУ¨Í¨³£Ê¹Óà .gperf ×÷ΪÀ©Õ¹Ãû£¬µ«²»×öÇ¿ÖÆÒªÇ󣩗 ÀýÈ磬commandoptions.gperf — ²¢Õë¶ÔÉ¢ÁÐ±í¡¢É¢ÁкͲéÕÒ·½·¨Éú³É C/C++ Ô´´úÂë¡£ËùÓдúÂë±»¶¨Ïòµ½±ê×¼Êä³ö£¬È»ºó±ØÐëÖØ¶¨Ïòµ½ÀàËÆÏÂÃæµÄÎļþ£º
gperf -L C++ command_line_options.gperf > p


Ïà¹ØÎĵµ£º

×ªÔØ:Hadoop Ó¦¸ÃÓÃC++ʵÏÖ£¬¶ø²»ÊÇJava

http://www.trendcaller.com/2009/05/hadoop-should-target-cllvm-not-java.html
Sunday, May 10, 2009
Hadoop should target C++/LLVM, not Java (because of watts)
< type="text/javascript">
digg_url="http://www.trendcaller.com/2009/05/hadoop-should-target-cllvm-not-java.html";
Over the years, ......

Linux»·¾³ÏÂÓÃcÓïÑÔдµÄ²¥·ÅwavÎļþµÄС³ÌÐò

#include <unistd.h>
#include <fcntl.h>
#include
<sys/types.h>
#include <sys/ioctl.h>
#include
<stdlib.h>
#include <stdio.h>
#include
<linux/soundcard.h>
/* ÏÂÃæµÄÈý¸ö²ÎÊýÊǸú¾ßÌåÎļþÏà¹ØµÄ£¬ÎļþʲôÑù£¬¾ÍÒªÉèÖóÉʲôÑù */
#define RATE 11025&nbs ......

LinuxÄÚºËÈëÃÅ£¨Èý£©—— CÓïÑÔ»ù±¾¹¦

    linuxÊÇÒ»¸ö¸´ÔÓµÄÈí¼þϵͳ£¬ÆäÄÚºËÔ´´úÂëÍùÍù»áÓõ½Ò»Ð©ÔÚÓ¦ÓóÌÐòÉè¼ÆÖв¿³£¼ûÓïÑԳɷֺͱà³Ì¼¼ÇÉ£¬ÕâЩ¶¼ÊÇ·ÖÎöÄÚºËÔ´´úÂëµÄ»ù±¾¹¦£¬Ï£Íû´ó¼ÒÄÜÖØµãÕÆÎÕ¡£
    Ê×ÏÈ£¬gcc±àÒëÆ÷´ÓÓïÑÔÀïÎüÊÕÁË“inline”ºÍ“const”¡£inlineº¯ÊýµÄ´óÁ¿Ê¹Óã¬ÓÐÀûÓÚÌá¸ßÔËÐ ......

ʹÓÃc#´´½¨sql serverµÄ´æ´¢¹ý³Ì_c#Ó¦ÓÃ2

{
SqlConnection cnn = new SqlConnection
("context connection=true");
cnn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "select * from customers";
SqlDataReader reader = cmd.ExecuteReader();
SqlContext.Pipe.Send(reader);
reader.Close();
cnn.Close();
}
......

C/C++µ¥Ôª²âÊÔÀíÂÛ¾«Òª£¨Ò»£©

ÄÚÈݽéÉÜ
   
  ±¾ÏµÁÐÎÄÕ¸ù¾Ý¡¶µ¥Ôª²âÊÔÓëVU2.6Ó¦Óá·ÊÓÆµ½²×ùµÄÀíÂÛ²¿·ÖÕûÀí¶ø³É£¬Ö÷ÒªÌÖÂÛËĸöÎÊÌ⣺ΪʲôÐèÒªµ¥Ôª²âÊÔ£¿ÔõÑùÕ÷·þ¿É²âÐÔÄÑÌ⣿ÔõÑù²ÅÄܸßЧÂʲâÊÔ£¿ÔõÑù±£Ö¤²âÊÔЧ¹û£¿Öصã²ûÊöµ¥Ôª²âÊԵĹؼüÎÊÌ⣬²»ÊÇÒ»°ã¸ÅÄÊʺÏÓÚ¶Ôµ¥Ôª²âÊÔÓÐÒ»¶¨Á˽âµÄ¶ÁÕß¡£
  ÔÚÑ¡Ôñ¹¤¾ßºÍʵʩ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ