Java "ÓÐÀíÓÉ" ±È C++ ¿ì
Java "ÓÐÀíÓÉ" ±È C++ ¿ì
×î½üÉÏCSDN±È½Ï¶à£¬ÓÖ¿´µ½ËµJava±ÈC++¸ü¿ìµÄÌû×Ó¡£
JavaÔÚijЩÇé¿öϱÈC++¿ìÎÒÈÏΪÊǺÜÓеÀÀíµÄ¡£ÀýÈç¿ÉÒÔ¸ù¾ÝÌØ¶¨µÄCPU½øÐÐÓÅ»¯µÈµÈ¡£
ÓÐλ½Ð wingfiring(±ð¶ºÁË)(·ÇµäÐÍͺ×Ó) µÄÀÏÐÖ·¢ÁËÒ»¸öÌû×Ó£¬ÔÎÄÈçÏ£º
ºÃ£¬ÎÒûÄÇô¶àʱ¼ä³³C++ºÃ»¹ÊÇJavaºÃ£¬ËùÒÔ£¬ÎÒ¾ÍÏÈÕ°ÑöÒ»ÏÂÂ¥Ö÷¸ø³öµÄÁ´½Ó°É£¬
µÚÒ»¸ö£º
http://kano.net/javabench/
ÀïÃæÓÐÁ½¶Î´úÂë
http://kano.net/javabench/src/cpp/
http://kano.net/javabench/src/java/
È»ºó¸ø³öÁË×Ô¼ºµÄÀíÓɲµ³âÕâ¸ö¹Ûµã¡£¿ÉϧÂíÉϾÍÑÍûÔÚÎÞÐÝÖ¹µÄÀ¬»øÌù×ÓºóÃæ¡£
ÎÒÈ»ºó¾ÍÄÃÉÏÃæµÄÕâ¸öÁ´½ÓÀ´Ëµ£¬·ÖÎöΪʲôJava±ÈC++¿ì¡£
´ó¸ÅµÄÔ´´úÂëÌù³öÀ´£º
Java°æ±¾£º
try {
byte[] buff = new byte[4096];
boolean inword = false;
int length;
while ((length = System.in.read(buff)) != -1) #1
{
nc += length;
for(int i = 0; i < length; i++) { #2
char c = (char)buff[i];
if (c == '\n')
++nl;
if (Character.isWhitespace(c))
inword = false;
else if (inword == false) {
++nw;
inword = true;
}
}
}
×¢Òâ#1ÕâÒ»ÐУ¬read½«4K×Ö½Ú¶ÁÈëbuffÖУ¬È»ºóÔÚ#2½øÐÐÄÚ²ãÑ»·£¬
C++°æ±¾£»
char buff[4096];
cin.rdbuf()->pubsetbuf(buff, 4096); #0// enable buffering
state = OUT;
nl = nw = nc = 0;
int intc;
streambuf* sbuf = cin.rdbuf();
while ((intc = sbuf->sbumpc()) != EOF) { #1
c = (char)intc;
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\n' || c == '\t')
state = OUT;
else if (state == OUT) {
state = IN;
++nw;
}
}
cout << nl << " " << nw << " " << nc << endl;
×¢ÒâC++°æ±¾Ö»Óе¥²ãÑ»·£¬ËäÈ»ÔÚ#0Ã²ËÆ¹«ÕýµÄ¿ª±ÙÁËͬÑù´óСµÄ4K buffer£¬µ«ÊÇÿһ¸ö×ֽڵĻñµÃ¶¼ÊÇͨ¹ýsbumpc()º¯Êý£¬µ÷ÓÃÒ»´Î¶Áȡһ¸ö×Ö½Ú£¬sbumpc´ó¸ÅÆäÖеÄÂß¼ÊÇÊ²Ã´ÄØ£¿Ê×ÏÈÒªÅжÏÊÇ·ñ¶Áµ½ÄÚ²¿»º³åÇøÎ²ÁË£¬Èç¹ûûÓУ¬ÄÇôµÝÔöÒ»¸öÖ¸Õ룬Èç¹û¶Áµ½Î²ÁË£¬ÄÇô½øÐÐϵͳµ÷ÓøüÐÂbuffer¡£¹âÆäÖÐifÓïÑԵĿªÏú¾Í¾ªÈË¡£
¶øJava°æ±¾¾Íͨ¹ýÒ»¸öreadº¯Êýµ÷Óã¬Ö±½Ó½«²»¶àÓÚ4KµÄÊý¾Ý´ÓÁ÷ÖжÁÈ¡µ½±¾µØbufferÖУ¬È»ºó½øÐÐÄÚ²ãÑ»·¡£
ÕâÑù¶ÔÓÚC++µÄ°æ±¾£¬ËäÈ»¶ÔOSµ×²ãµÄϵͳµ÷ÓúÍJavaÒ»Ñù¶à£¬µ«ÊǺ¯Êýµ÷ÓõĴÎÊý¿ªÏú¼¸ºõÊÇJavaµÄ4000±¶¡£
¼´Ò»¸ö8KµÄÎļþ£¬Javaµ÷ÓÃÁ½´Îread£¬È»ºó½øÈëÄÚ²ãÑ»
Ïà¹ØÎĵµ£º
Ò»¡¢
ʲôÊÇ
Servlet
Servlet
ÔÚ
web
ÈÝÆ÷ÖÐÓÃÀ´´´½¨¶¯Ì¬ÍøÒ³Óõģ¬ÒòΪËûûÓÐ
main
·½·¨£¬ËùÒÔ
Servlet
²»ÊÇÒ»¸öÍêÕûµÄ
Java
Ó¦ÓóÌÐò¡£
¶þ¡¢
Servlet
µÄ±àд
×î»ù±¾µÄ
Servlet
Òª°üÀ¨Èý²¿·Ö£¬·Ö±ðΪ
Servlet-name
¡¢
Servlet-class
¡¢
url-pattern
¡£
Èý¡¢
Servlet API
Generi
Servlet
ÊµÏ ......
¡¡¡¡Àà¼ÓÔØÊÇjavaÓïÑÔÌṩµÄ×îÇ¿´óµÄ»úÖÆÖ®Ò»¡£¾¡¹ÜÀà¼ÓÔØ²¢²»ÊÇÌÖÂÛµÄÈȵ㻰Ì⣬µ«ËùÓеıà³ÌÈËÔ±¶¼Ó¦¸ÃÁ˽âÆä¹¤×÷»úÖÆ£¬Ã÷°×Ôõô×ö²ÅÄÜÈÃÆäÂú×ãÎÒÃǵÄÐèÒª¡£ÕâÄÜÓÐЧ½ÚÊ¡ÎÒÃǵıàÂëʱ¼ä£¬´Ó²»¶Ïµ÷ÊÔClassNotFoundException, ClassCastExceptionµÄ¹¤×÷ÖнâÍѳöÀ´¡£
¡¡¡¡ÕâÆªÎÄÕ´ӻù´¡½²Æð£¬±ÈÈç´úÂëºÍÊý¾ÝµÄ²»Í¬Ö®´¦ÊÇʲ ......
Code::BlocksÊÇÒ»¸öÃâ·Ñ¡¢¿ªÔ´¡¢¿çƽ̨µÄIDE£¬Ê¹ÓÃC++¿ª·¢£¬²¢ÇÒʹÓÃwxWidgets×öΪGUIº¯ÊÔ¿â¡£Code::BlocksʹÓÃÁ˲å¼þ¼Ü¹¹£¬Æä¹¦ÄÜ¿ÉÒÔʹÓòå¼þ×ÔÓɵØÀ©³ä¡£Ä¿Ç°£¬
Code::BlocksÖ÷ÒªÕë¶Ô¿ª·¢C£¯C++³Ìʽ¶øÉè¼Æ¡£
ÓÉÓÚËü¿ª·ÅÔ´ÂëµÄÌØµã£¬WindowsÓû§¿ÉÒÔ²»ÒÀÀµÓÚVS.NET£¬±àд¿çƽ̨C++Ó¦Ó ......
javac
Ó÷¨£ºjavac <Ñ¡Ïî> <Ô´Îļþ>
ÆäÖУ¬¿ÉÄܵÄÑ¡Ïî°üÀ¨£º
-g   ......
¼ÇµÃÒ»Äêǰ£¬ÕýÊÇ×Ô¼º¶Ôjava°®²»ÊÍÊÖµÄʱºò£¬¶øÍøÉÏÒ²ÊÇÒ»²¨ÓÖÒ»²¨µÄjava³°·íÈÈ£¬ÎÒ·ßÅÁË£¬¾ÍÏñÈËÈ˶¼»áº´ÎÀ×Ô¼ºÏ²»¶µÄ¶«Î÷Ò»Ñù¡£ÎÒÔÚÄÚÍøÒ»´ÎÓÖÒ»´ÎµÄ·¢Ìû·¢Ð¹£¬¿ÉÄܰÓÚÎÒÊǰæÖ÷£¬javaÅúÅÐÕßÃÇҲûÓлØÌû¡£Ö±µ½ºóÀ´£¬´ó¼ÒÈÏʶÎÒ£¬¶¼ËµÂ··ÉºÜÉó¤java£¬javaºÜÀ÷º¦¡£ÆäʵÎÒÖ»¶ÔJ2SEÂÔ¶®Æ¤Ã«¡£ÎÒϲ»¶javaµÄÔÒòÊÇ£¬¶ÔÓÚÒ»¸ö ......