锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美激情精品久久久久久黑人,国产精品亚洲精品,欧美日韩一区在线视频http://m.shnenglu.com/oldworm/zh-cnWed, 24 Sep 2025 00:54:21 GMTWed, 24 Sep 2025 00:54:21 GMT60Windows涓嬩袱縐峣ocp瀹炵幇鐨勫樊璺?/title><link>http://m.shnenglu.com/oldworm/archive/2011/02/01/139662.html</link><dc:creator>琚佹枌</dc:creator><author>琚佹枌</author><pubDate>Tue, 01 Feb 2011 02:48:00 GMT</pubDate><guid>http://m.shnenglu.com/oldworm/archive/2011/02/01/139662.html</guid><wfw:comment>http://m.shnenglu.com/oldworm/comments/139662.html</wfw:comment><comments>http://m.shnenglu.com/oldworm/archive/2011/02/01/139662.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.shnenglu.com/oldworm/comments/commentRss/139662.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/oldworm/services/trackbacks/139662.html</trackback:ping><description><![CDATA[ <p class="MsoNormal"><span lang="EN-US">Windows</span><span style="font-family: 瀹嬩綋;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: 瀹嬩綋;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin">涓嬩袱縐?/span><span lang="EN-US">iocp</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: Calibri;mso-hansi-theme-font:minor-latin">瀹炵幇鐨勫樊璺?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涔嬪墠鍑犲ぉ璇磋繃錛屽洜涓虹粡鍏?/span><span lang="EN-US">iocp</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">瀹炵幇錛堜互涓嬬畝縐扮粡鍏稿疄鐜幫級澶氫釜</span><span lang="EN-US">io</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">綰跨▼緇戝畾鍦ㄤ竴涓?/span><span lang="EN-US">iocp</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涓婏紝榪欐牱鍐呴儴綆$悊浜?/span><span lang="EN-US">iocp</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">闃熷垪鐨勫鐞嗭紝鍐呴儴鍐沖畾鏄笉鏄渶瑕佺嚎紼嬪垏鎹紝鎴戜笂嬈′慨鏀圭殑涓涓増鏈紙浠ヤ笅綆縐板疄鐜?/span><span lang="EN-US">2</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">錛夛紝鐢ㄤ簡澶氫釜</span><span lang="EN-US">io</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">綰跨▼錛屾瘡涓?/span><span lang="EN-US">iocp</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">闃熷垪浠呯粦瀹氫竴涓?/span><span lang="EN-US">io</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">綰跨▼錛屼竴緇勭敤鎴峰叡浜竴涓?/span><span lang="EN-US">io</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">綰跨▼錛岃繖鍜岀粡鍏哥殑澶氱嚎紼?/span><span lang="EN-US">epoll</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">妯″瀷鐨勫仛娉曟槸寰堢浉浼肩殑錛岃繖鏍鋒瘡涓?/span><span lang="EN-US">io</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">綰跨▼鏄彲浠ョ嫭绔嬫帶鍒朵簡錛屼絾鐞嗚涓婅繖縐嶅仛娉曟病鏈夊彂鎸?/span><span lang="EN-US">iocp</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">鑷姩綆$悊綰跨▼鍒囨崲鐨勪紭鍔匡紝鏄ㄦ櫄娌′簨鐢ㄨ繖涓ょ瀹炵幇鍒嗗埆鍋氫簡涓?/span><span lang="EN-US">echoserver</span><span style="font-family:瀹嬩綋;mso-ascii-font-family: Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">嫻嬭瘯浜嗕竴涓嬶紝榪欎袱濂楀疄鐜頒唬鐮佷粎</span><span lang="EN-US">40</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">琛屽乏鍙充笉鍚岋紝鍏朵粬瀹屽叏涓鏍鳳紝鏁堟灉鐪熺殑鏄樊寰堝錛屾祴璇曚粎鐢ㄤ竴涓繘紼嬫ā鎷熶簡</span><span lang="EN-US">4000</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涓鎴風錛屾瘡縐?/span><span lang="EN-US">1</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涓寘錛屽厛鐪嬪疄鐜?/span><span lang="EN-US">2</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">鐨勶紝</span><span lang="EN-US">cpu</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">鍗?/span><span lang="EN-US">14%</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">錛?/span><span lang="EN-US">2</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涓?/span><span lang="EN-US">io</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">綰跨▼錛?/span><span lang="EN-US">1</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涓?/span><span lang="EN-US">accept</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">綰跨▼錛?/span><span lang="EN-US">1</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涓富綰跨▼錛屽叾浠栫嚎紼嬮兘娌″共媧婚棽緗?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border-width: initial; border-color: initial; "> <tbody><tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">Cpu</span></p> </td> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">Memory</span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">Threads</span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">handles</span></p> </td> </tr> <tr style="mso-yfti-irow:1;mso-yfti-lastrow:yes"> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">14</span></p> </td> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">40088k</span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">8</span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">4236</span></p> </td> </tr> </tbody></table> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><p class="MsoNormal"><span lang="EN-US"><o:p></o:p></span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">鍐嶇湅緇忓吀瀹炵幇錛?/span><span lang="EN-US">cpu</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">鍑犱箮涓鐩存槸</span><span lang="EN-US">0%</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">錛?/span><span lang="EN-US">2</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涓?/span><span lang="EN-US">io</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">綰跨▼錛?/span><span lang="EN-US">accept</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涔熸槸鍦?/span><span lang="EN-US">io</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">綰跨▼閲岄潰澶勭悊錛屽叾浠栬窡瀹炵幇</span><span lang="EN-US">2</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涓鏍鳳紝嫻嬭瘯瀹㈡埛绔篃涓鏍楓?/span></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border-width: initial; border-color: initial; "> <tbody><tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">Cpu<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">Memory<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">Threads<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">handles<o:p></o:p></span></p> </td> </tr> <tr style="mso-yfti-irow:1;mso-yfti-lastrow:yes"> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">0<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">39244k<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">7<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">4336<o:p></o:p></span></p> </td> </tr> </tbody></table> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">璇村疄璇濓紝鍦ㄦ祴璇曚箣鍓嶆垜涔熸病鎯沖埌鏈夎繖涔堝ぇ鐨勫樊璺濓紝緇忓吀瀹炵幇灝辨槸</span><span lang="EN-US">1.2w</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涓繛鎺ヨ繛涓婃潵榪樻槸榪欐牱錛屽氨鏄唴瀛樺崰鐢ㄥ涓鐐癸細</span></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border-width: initial; border-color: initial; "> <tbody><tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">Cpu<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">Memory<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">Threads<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">handles<o:p></o:p></span></p> </td> </tr> <tr style="mso-yfti-irow:1;mso-yfti-lastrow:yes"> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">0<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.5pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">112068k<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">7<o:p></o:p></span></p> </td> <td width="142" valign="top" style="width: 106.55pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; "> <p class="MsoNormal"><span lang="EN-US">12280<o:p></o:p></span></p> </td> </tr> </tbody></table> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">涔犳儻涓婃繪湁浜哄枩嬈㈡嬁</span><span lang="EN-US">epoll</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">鍜?/span><span lang="EN-US">iocp</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">鏉ュ姣旓紝鎴戝埌鐜板湪涔熸病鐪嬪埌鐪熸鍏鉤鐨勫姣旓紝灝辯畻鏄浉瀵瑰叕騫崇殑涔熸病瑙佸埌錛屽洜涓哄湪鎴戠湅鏉ワ紝瑕佸姣旂‖浠跺簲璇ユ槸涓鏍風殑錛?/span><span lang="EN-US">os</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">閮藉簲璇ユ槸鏈鏂扮殑錛屾渶閲嶈鐨勬槸錛?/span><span lang="EN-US">server</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">绔▼搴忓簲璇ラ兘鏄彂鎸ヤ簡鍚勮嚜浼樺娍鐨勶紝濡傛灉鎷挎垜榪欓噷鐨勫疄鐜?/span><span lang="EN-US">2</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">鍘諱唬琛?/span><span lang="EN-US">iocp</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">鐨勬按騫沖拰</span><span lang="EN-US">epoll</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">瀵規瘮錛屽娍蹇呴犳垚姣?/span><span lang="EN-US">epoll</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">宸緢澶氱殑緇撴灉錛岀劧鑰岃繖鏄劇劧鏄笉姝g‘鐨勩?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">epoll</span><span style="font-family:瀹嬩綋; mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: 瀹嬩綋;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin">緇忓吀澶氱嚎紼嬫ā寮忓疄闄呭疄鐜板拰瀹炵幇</span><span lang="EN-US">2</span><span style="font-family:瀹嬩綋;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-fareast-font-family:瀹嬩綋;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: Calibri;mso-hansi-theme-font:minor-latin">寰堢浉浼鹼紝鐞嗚涓婁篃鏈夌被浼肩殑綰跨▼鍒囨崲闂錛屼笉鐭ラ亾鏁堢巼鎬庢牱銆?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <img src ="http://m.shnenglu.com/oldworm/aggbug/139662.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/oldworm/" target="_blank">琚佹枌</a> 2011-02-01 10:48 <a href="http://m.shnenglu.com/oldworm/archive/2011/02/01/139662.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍥炶皟鍑芥暟鐨勫父瑙佸疄鐜版柟寮忓強閫熷害姣旇緝http://m.shnenglu.com/oldworm/archive/2011/01/30/139610.html琚佹枌琚佹枌Sun, 30 Jan 2011 03:19:00 GMThttp://m.shnenglu.com/oldworm/archive/2011/01/30/139610.htmlhttp://m.shnenglu.com/oldworm/comments/139610.htmlhttp://m.shnenglu.com/oldworm/archive/2011/01/30/139610.html#Feedback3http://m.shnenglu.com/oldworm/comments/commentRss/139610.htmlhttp://m.shnenglu.com/oldworm/services/trackbacks/139610.html鍥炶皟鍑芥暟鐨勫父瑙佸疄鐜版柟寮忓強閫熷害姣旇緝

 

 

鍥炶皟鍑芥暟瀹炲湪鏄敤寰楀お騫挎硾錛屽洖璋冨嚱鏁板張鏈夊縐嶅疄鐜版柟寮忥紝濡傦細

1銆?span style="font:7.0pt "Times New Roman"">  闈欐佸嚱鏁?/span>

2銆?span style="font:7.0pt "Times New Roman"">  铏氬嚱鏁?/span>

3銆?span style="font:7.0pt "Times New Roman"">  鍑芥暟瀵硅薄

4銆?span style="font:7.0pt "Times New Roman"">  浼犵粺c鍑芥暟錛岄氳繃涓涓?/span>void *浼犻掑璞″湴鍧錛屽唴閮ㄥ己鍒惰漿鎹?/span>

5銆?span style="font:7.0pt "Times New Roman"">  fastdelegate

6銆?span style="font:7.0pt "Times New Roman"">  Tr1::function + bind

7銆?span style="font:7.0pt "Times New Roman"">  Boost::Function + bind

鍩烘湰涓婇熷害鏄寜鐓х敱蹇埌鎱㈢殑欏哄簭鎺掑垪鐨勶紝灝辨槸

1 > 2 > 3 > 4 > 5 > 6 > 7

鍏跺疄234閫熷害寰堟帴榪戯紝鏈夌殑鏃跺欏嚱鏁板璞℃晥鐜囨洿楂樹竴鐐癸紝鍩烘湰涓婅秺鏄珮綰х殑鏂規硶浣跨敤璧鋒潵瓚婃柟渚匡紝浣嗛熷害瓚婃參錛岃秺鏄紶緇熺殑鏂規硶閫熷害瓚婂揩錛屽懙鍛碉紝鐪嬫潵鍋?/span>server绔▼搴忚緇煎悎鑰冭檻鏁堢巼澶柊鐨勪笢瑗胯繕鏄灝戠敤鍟婏紝榪樻槸鐢ㄤ紶緇熺殑鏂規硶姣旇緝闈犺氨涓鐐癸紝褰撶劧濡傛灉璋冪敤嬈℃暟涓嶅鐨勫湴鏂癸紝浣跨敤鏇存柟渚跨殑鏂規硶榪樻槸濂戒竴浜涳紝姣曠珶鎴戜滑瑕佺患鍚堟潈琛★紝鑰屼笉鑳芥鏉挎仾瀹堟暀鏉°?/span>

 

 



琚佹枌 2011-01-30 11:19 鍙戣〃璇勮
]]>
涓濂楃綉緇滄鏋剁殑鏉叿http://m.shnenglu.com/oldworm/archive/2011/01/26/139352.html琚佹枌琚佹枌Wed, 26 Jan 2011 08:14:00 GMThttp://m.shnenglu.com/oldworm/archive/2011/01/26/139352.htmlhttp://m.shnenglu.com/oldworm/comments/139352.htmlhttp://m.shnenglu.com/oldworm/archive/2011/01/26/139352.html#Feedback1http://m.shnenglu.com/oldworm/comments/commentRss/139352.htmlhttp://m.shnenglu.com/oldworm/services/trackbacks/139352.html涓濂楃綉緇滄鏋剁殑鏉叿

涔嬪墠璁捐浜嗕竴濂楃綉緇滄鏋訛紝鎸佺畫鏀硅繘浜嗗緢澶氬勾錛屼嬌鐢ㄥ湪寰堝欏圭洰涓婏紝緇煎悎鏁堢巼榪樿錛屼篃寰堢ǔ瀹氾紝涓鐩翠互鏉ュ榪欏涓滆タ淇″績婊℃弧錛屾諱互涓哄暐闂閮藉ソ瑙e喅錛屼絾鏈榪戝氨鏈変釜闇姹傝鎴戦夋嫨榪樻槸鏀逛簡涓嬭繖涓鏋躲?/span>

涔嬪墠鐨勬鏋舵槸榪欐牱鐨勶紝鍙互寮涓緇?/span>N涓?/span>io綰跨▼錛屽彲浠ュ紑涓緇?/span>N涓悓姝ョ嚎紼嬶紙榛樿1涓級錛屽彲浠ュ紑涓緇?/span>N涓紓姝ョ嚎紼嬶紙榛樿1涓級錛屽彲浠ュ紑涓緇?/span>N涓?/span>timer綰跨▼錛堥粯璁?/span>1涓級錛屽彲浠ュ紑涓緇?/span>N涓紓姝ョ嚎紼嬶紙榛樿cpu涓級錛屾瘡緇勫彲鐙珛鍙楁帶錛屾瘡緇勫彲鏀寔鑷畾涔夋秷鎭紝鍙敮鎸?/span>timer錛屼竴緇?/span>N涓鏋?/span>N澶т簬1鍒欐棤娉曠洿鎺ョ粰榪欑粍閲岄潰鐨勭壒瀹氱嚎紼嬪彂娑堟伅錛屽彧鑳界粰涓緇勫彂娑堟伅錛岃繖涓粍閲岄潰浼氶夋嫨鏌愪釜鍚堥傜殑綰跨▼澶勭悊榪欎釜娑堟伅錛岃繖涔熸槸iocp楂樻晥鍜屽吀鍨嬬殑鐢ㄦ硶浜嗭紝浣嗚繖涔熸鏄棶棰樼殑緇撶棁鎵鍦ㄣ?/span>

Linux涓嬬殑澶氱嚎紼嬫湇鍔″櫒鏇村父瑙佺殑鍋氭硶璺熻繖涓笉澶х浉浼鹼紝涓鑸兘鏄皢鏌愪簺socket鍒嗛厤鍒版煇浜涚嚎紼?/span>epoll錛屽垎濂戒箣鍚庡氨鏄浐瀹氱殑錛屼笉鍐嶅彉鍖栵紝璺?/span>Iocp灝?/span>socket緇戝畾鍒頒竴緇勭嚎紼嬬殑鍋氭硶涓嶅悓錛岀敱浜庢煇涓?/span>socket鐩存帴緇戝畾鍒頒簡鏌愪釜綰跨▼錛屾墍浠ユ湁浜涢棶棰樺氨鍙樺緱綆鍗曚簡錛屽鍚屼竴涓繛鎺ョ殑鍦ㄥ悓涓涓嚎紼嬪唴娑堟伅榪涜浜嗗悓姝ワ紝瑕佽窡io綰跨▼緇戝畾縐佹湁鍖栨暟鎹篃綆鍗曚簡錛岃屼笖姣忎釜綰跨▼鍙嫭绔嬪彈鎺э紝鎵浠ュ緢瀹規槗瀹炵幇涓緇?/span>io鍚勮嚜鎸?/span>tls錛堢嚎紼嬪眬閮ㄥ瓨鍌級鏁版嵁錛岃屾垜鐜板湪鍋氱殑榪欏妗嗘灦灝辨槸榪欐柟闈笉濂芥帶浜嗭紝鍏跺疄涔熷緢闅捐榪欎袱縐嶆剰涔変笂鐨勬鏋跺埌搴曡皝鏇翠紭錛屽鐢ㄥ湪web鍨嬪簲鐢ㄤ笂榪欑socket琚竴緇?/span>io綰跨▼綆$悊鐨勬ā寮忓緢鏂逛究鏁堢巼涔熼珮錛屼絾鎴戠幇鍦ㄧ殑闇姹傞渶瑕佹煇涓?/span>socket浣跨敤綰跨▼鐩稿叧鏁版嵁錛屼互閬垮厤鏁版嵁涔嬮棿鐨勯攣錛屾垜鐢ㄥ唴瀛樻崲鏃墮棿錛岀敱浜庡湪鍘熸潵鐨勬鏋朵笂澧為昏緫闅句互瀹炵幇鍙洿鎺ユ帶鍒?/span>io綰跨▼鐨勬鏋剁殑錛屾墍浠ヨ姳浜嗕竴涓櫄涓婇噸鏂版敼鍐欎簡涓濂楁鏋訛紝鍦ㄥ師鏉?/span>iocpframe鐨勫熀紜涓婃淳鐢熶簡涓緇勫甫2鍚嶇О鐨勭被錛岄櫎鏇挎崲綾誨悕涔嬪鍙慨鏀逛簡鍑犲崄琛屼唬鐮佸氨鍋氬ソ浜嗭紝鎬葷殑鏉ヨ鑺辯殑鏃墮棿榪樻槸姣旇緝灝戠殑銆備慨鏀瑰悗io綰跨▼涓緇勶紝浣嗙嫭绔嬪彈鎺э紝澶栭儴鍙榪欑粍綰跨▼涓殑鏌愪竴涓洿鎺ュ彂娑堟伅錛屽熀鏈弧瓚充簡闇姹傦紝鐜板湪瑕佺粰姣忎釜io綰跨▼緇戝畾縐佹湁鏁版嵁騫惰Е鍙戠壒瀹氭秷鎭瘮涔嬪墠綆鍗曞浜嗭紝鑰屼笖緇濆鏃犻攣銆?/span>

 



琚佹枌 2011-01-26 16:14 鍙戣〃璇勮
]]>
璁╁悗绔湇鍔″櫒鏀寔memcached鍗忚http://m.shnenglu.com/oldworm/archive/2011/01/23/139168.html琚佹枌琚佹枌Sun, 23 Jan 2011 09:13:00 GMThttp://m.shnenglu.com/oldworm/archive/2011/01/23/139168.htmlhttp://m.shnenglu.com/oldworm/comments/139168.htmlhttp://m.shnenglu.com/oldworm/archive/2011/01/23/139168.html#Feedback1http://m.shnenglu.com/oldworm/comments/commentRss/139168.htmlhttp://m.shnenglu.com/oldworm/services/trackbacks/139168.html 

鐢變簬鍘熷厛鐨?/span>appserver鍔熻兘涓嶆柇澧炲錛屾渶榪戝張澧炰簡涓や釜鍔熻兘錛岄渶瑕佷笉鏂粠鍚庣memcached涓彁鍙栨暟鎹茍榪涜璁$畻錛岀敱浜庢彁鍙栨暟鎹噺澶т笖棰戠箒錛屽鑷存晥鐜囧緢浣庯紝綺楁祴浜嗕竴涓嬶紝鑾峰彇鏁版嵁鍜屾牸寮忓寲絳夋搷浣滆姳浜?/span>90%浠ヤ笂鐨勬椂闂達紝鐢辨璁炬兂灝?/span>memcached鏀瑰啓鎴栭噸鍐欎竴涓敮鎸?/span>memcached鐨勬湇鍔″櫒錛屽皢璁$畻鍔熻兘鍜?/span>memcached鍋氬埌涓璧鳳紝璁╄幏鍙栨暟鎹殑璺緞鏈鐭紝涔熷氨鏈澶ч檺搴﹀噺灝戜簡鏁版嵁浼犺緭鍜屾牸寮忓寲絳夋搷浣滐紝灝辨槸綾諱技瀛樺偍榪囩▼涓鏍峰暒錛岃繖閮ㄥ垎鍙互鑰冭檻浣跨敤鎻掍歡鏉ュ疄鐜幫紝鐢氳嚦鍙冭檻浣跨敤鑴氭湰璇█鏉ュ疄鐜般?/span>

緗戜笂鎼滀簡涓涓嬶紝鏋滅劧鍙戠幇鏃╂湁浜鴻繖涔堝共浜嗭紝姝f墍璋撹嫳闆勬墍瑙佸晩錛屽懙鍛點傚叿浣撴柟娉曞掑緢澶氾紝鑷畾涔?/span>key鍛藉悕錛屾牴鎹壒孌?/span>key鍦?/span>get銆?/span>set銆?/span>replace涓婂仛鐗規畩鎿嶄綔錛屾垨鑰呮牴鎹懡浠や腑鐨?/span>flag絳夊仛鐗規畩澶勭悊錛屾垨鑰呮墿鍏?/span>stat鍛戒護絳夛紝閮芥槸鍙互鐨勶紝鎴戜滑鏆傛椂灝辮冭檻淇敼鐗規畩鐨勯敭鍊煎仛鐗規畩澶勭悊銆?/span>

瑕佸仛涓涓畬澶囩殑鏃㈡敮鎸?/span>ascii鍛戒護鍙堟敮鎸?/span>binary鍛戒護鐨勫吋瀹?/span>memcached榪樻槸鏈変竴鐐圭偣楹葷儲鐨勶紝鎴戞殏鏃朵篃娌℃湁澶闇姹傦紝鎵浠ュ氨浠呮敮鎸佷簡ascii鍛戒護錛屽叾瀹炰篃鏄冭檻鏀寔ascii鐨勫鎴風鏇村錛屽悇縐嶈璦鐨勬敮鎸?/span>mc鐨勫鎴風鏁頒笉鑳滄暟錛屼絾澶у鍙敮鎸?/span>ascii鍛戒護銆傜敱浜庢垜涔嬪墠涓轟簡嫻嬭瘯鏈嶅姟鍣ㄦ鏋舵晥鐜囷紝鍋氳繃涓涓敮鎸?/span>ascii鍛戒護鐨?/span>memcached鍏煎鐗堟湰錛屽洜姝ゆ嬁榪囨潵鐩存帴浣跨敤澶柟渚夸簡錛岃繖涓増鏈殑瀹炵幇鍏跺疄寰堝鏄擄紝濡傛灉鏈変竴涓緝濂界殑妗嗘灦浠g爜鐨勮瘽鍩烘湰涓婂湪涓澶╀箣鍐呭彲鍋氬畬錛屽綋鐒惰鍋氬埌寰堝ソ鍙兘闇瑕佸鑺變竴浜涙椂闂達紝鎴戠幇鍦ㄥ仛鐨勪篃涓嶆槸鐗瑰ソ錛岃瀹屽叏鍙栦唬memcached浣跨敤榪樻槸鏈変簺宸窛錛屼富瑕佹槸涓浜涜繃鏈熸満鍒剁瓑娌″畬鍏ㄥ疄鐜幫紝铏界劧閫熷害涓婃瘮鏍囧噯mc鐗堟湰榪樿蹇竴鐐癸紝鍛靛懙錛屽洜涓烘殏鏃剁殑紜槸涓嶉渶瑕佽繖浜涜繃鏈熸満鍒訛紝鎵浠ヤ篃娌℃墦綆楄繖涓増鏈疄鐜幫紝鍏朵粬鍔熻兘鍩烘湰涓婇兘鏈夈?/span>

浠ュ悗鍑嗗灝嗚繖涓?/span>memcached瑙g爜閮ㄥ垎浣滀負涓涓崟鐙殑瑙f瀽鍣紝鍜屾敮鎸佸叾浠栧崗璁竴鏍鳳紝鎹笂榪欎釜瑙f瀽閭e氨鏀寔mc鍗忚浜嗭紝榪樻槸寰堟柟渚跨殑錛屼互鍚庢湁絀鴻繕鏄鍋氫釜鏀寔binary鍗忚鐨勶紝浠ヤ究鍙互鏇撮珮鏁堢殑瑙e喅闂銆?/span>

鎯沖埌server鑳芥敮鎸?/span>Memcached鍗忚鐪熸槸濂藉晩錛屽鎴風鍩烘湰鍙鐢ㄤ釜libmemcached灝卞ソ浜嗭紝澶氭湇鍔″櫒鍒嗗竷錛屽閿欙紝澶氫喚鏁版嵁鍟ョ殑閮芥湁鐜版垚鐨勮В鍐蟲柟妗堬紝鍙鎶?/span>server鍋氱ǔ瀹氫簡灝卞熀鏈?/span>ok浜嗭紝瀵瑰挶榪欑灝忓洟闃熸潵璇村啀鍚堥備笉榪囦簡錛岃妭鐪佷簡寰堝寮鍙戠淮鎶ゆ垚鏈晩錛岀幇鍦ㄥ唴瀛樿繖涔堜究瀹滐紝閮ㄧ講鍑犱釜鐐瑰疄鍦ㄦ槸寰?/span>easy鐨勯棶棰樸?/span>

 

 



琚佹枌 2011-01-23 17:13 鍙戣〃璇勮
]]>
鍏充簬鍐呭瓨鏁版嵁搴?/title><link>http://m.shnenglu.com/oldworm/archive/2011/01/21/139015.html</link><dc:creator>琚佹枌</dc:creator><author>琚佹枌</author><pubDate>Fri, 21 Jan 2011 05:37:00 GMT</pubDate><guid>http://m.shnenglu.com/oldworm/archive/2011/01/21/139015.html</guid><wfw:comment>http://m.shnenglu.com/oldworm/comments/139015.html</wfw:comment><comments>http://m.shnenglu.com/oldworm/archive/2011/01/21/139015.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://m.shnenglu.com/oldworm/comments/commentRss/139015.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/oldworm/services/trackbacks/139015.html</trackback:ping><description><![CDATA[  <p><span>鍏充簬鍐呭瓨鏁版嵁搴?/span></p> <p> </p> <p><span>鏈榪戣灝嗕竴浜涙暟鎹斁鍒板唴瀛橀噷闈㈠仛寰堥珮鐨勫茍鍙戞搷浣滐紝鑰冭檻浜嗗緢澶氭柟妗堬紝</span></p> <p><span><span>1銆?nbsp;</span></span><span>綆鍗曠偣浣跨敤</span><span>map hash_map</span><span>絳夎嚜宸辯鐞嗐?/span></p> <p><span><span>2銆?nbsp;</span></span><span>鐢?/span><span>sqlite</span><span>鍐呭瓨琛ㄣ?/span></p> <p><span><span>3銆?nbsp;</span></span><span>鐢?/span><span>fastdb</span><span>鍐呭瓨鏁版嵁搴撱?/span></p> <p><span><span>4銆?nbsp;</span></span><span>鐢?/span><span>ExtremeDb</span><span>錛?/span><span>TimesTen</span><span>絳夈?/span></p> <p><span>姣旇緝嫻嬭瘯浜嗕竴涓?/span><span>123</span><span>錛屽彂鐜拌繕鏄嚜宸卞疄鐜伴熷害鏈蹇紝姣?/span><span>fastdb</span><span>妯″紡蹇?/span><span>3-5</span><span>鍊嶏紝</span><span>fastdb</span><span>妯″紡姣?/span><span>sqlite</span><span>鍐呭瓨琛ㄦā寮忓揩</span><span>10</span><span>鍊嶅乏鍙籌紝鐢變簬鑷繁瀹炵幇涓嶅叿鏈夊吀鍨嬮氱敤鎬э紝澶氱嚎紼嬩笅璁塊棶鏁堢巼浼氫笅闄嶏紝瑕佺鐞嗗綰跨▼涓嬪悇縐嶆洿鏂版煡鎵劇瓑榪樻槸姣旇緝楹葷儲鐨勶紝鎵浠ュ湪</span><span>1</span><span>鍜?/span><span>3</span><span>鏂規涔嬮棿綰犵粨銆?/span></p> <p><span>涓轟簡浣垮緱鍐崇瓥鏇村ソ涓浜涳紝鏆傛椂榪樻病鍋氬喅瀹氾紝欏轟究鍒頒竾鏂圭瓑涓婇潰鎼滅儲浜嗕竴浜涜鏂囨潵鐪嬶紝鐪嬫潵鐪嬪幓鐪嬪緱鐪熸潵姘斿晩錛岃櫧鐒墮兘鍙唴瀛樻暟鎹簱浣嗗悇縐嶅疄鐜扮殑閮芥湁錛屾湁鐢?/span><span>gdbm</span><span>鏉ュ仛鐨勶紝鏈夌洿鎺?/span><span>map</span><span>綆$悊鐨勶紝鏈?/span><span>hash</span><span>綆$悊鏁版嵁鐨勶紝鏈?/span><span>t</span><span>鏍戠鐞嗙殑錛屾湁鏁扮粍闃熷垪綆$悊鐨勶紝鏈夌殑鏄庢樉灝辨槸涓笉澶у彉鐨勪笢瑗胯繕寮勪釜鍟ヤ簨鍔$殑錛岄潬錛屽垰鍒氬眳鐒惰繕鐪嬪埌涓綃囬笩鏂囥婄數緗戠洃鎺х郴緇熷疄鏃舵暟鎹簱鐨勮璁′笌瀹炵幇銆嬮噷闈㈢殑嫻嬭瘯灞呯劧鏄?/span><span>1000</span><span>鏉★紝鎻掑叆鏃墮棿</span><span>80</span><span>姣錛岀湡鍙瑧鍟婏紝鍖哄尯榪欎箞鐐規暟鎹篃濂芥剰鎬濇祴錛岃繕瑕佽姳</span><span>80</span><span>姣錛岃繕鑷互涓哄緢蹇紝榪欎釜閫熷害鑷沖皯鍙彁楂?/span><span>1000</span><span>鍊嶄互涓婂晩錛岃繖甯瀮鍦撅紝鍐欑殑鍟ラ笩鏂囩珷錛岀爺絀朵釜灞佸晩銆?/span></p> <p><span>鐪嬪畬榪欏崄鏉ョ瘒璁烘枃錛屼亢鐨勬濈華鍙堝洖鍒?/span><span>1999</span><span>騫達紝褰撳勾鎴戠粰鍒漢浼樺寲榪囦竴涓數淇¤璐圭殑杞歡錛堢湅鐨勮鏂囬噷闈㈡湁濂藉嚑綃囪鐢典俊璁¤垂鐨勶級錛屽綋鏃舵湁涓湅鍙嬬殑鏈嬪弸鎷夸簡涓渶姹傝繃鏉ワ紝</span><span>7000</span><span>涓囨潯璁板綍錛屽師鏉ヨ綆楄垂鍗曡鑺卞崄鍑犱釜灝忔椂鍚э紝鎴戝府浠栨敼浜嗕笅錛屽崄鏉ュ垎閽熷氨綆楀畬浜嗭紝鏈嬪弸寰堟弧鎰忥紝褰撴椂鐨勫仛娉曞緢綆鍗曪紝灝辨槸寮勪簡涓?/span><span>mmtable</span><span>錛屽ぇ浣撳氨鏄窡</span><span>map</span><span>綾諱技鐨勪笢瑗垮惂錛岄偅涓椂鍊?/span><span>map</span><span>榪樻病嫻佽璧鋒潵錛屼亢涔熶笉鐭ラ亾錛屾墍浠ュ氨鑷繁寮勪簡涓唴瀛樿〃錛屽唴閮ㄥ熀鏈氨鏄簩鍒嗘煡鎵句簡錛岄偅涓椂鍊欐垜瀵?/span><span>hash</span><span>閮戒笉澶х啛鎮夛紝</span><span>B</span><span>鏍戜箣綾葷殑綆楁硶鍒氭帴瑙︿篃涓嶄細鐢紝灝辮繖涔堜釜涓滆タ褰撴椂鐨勭數鑴戜篃鍙鑺卞崄鏉ュ垎閽燂紝鎴戜及璁″氨綆楁槸閭d釜鑰佺▼搴忔斁鍦ㄧ幇鍦ㄧ殑鏅氬彴寮忔満涓婅涓嶄簡鍑犵閽熷氨鍙畻瀹屻備篃涓嶇煡閬撹繖涔堝嚑鍗冧竾鏉¤褰曠殑灝忛渶姹傛庝箞鍦ㄨ繖甯漢鐪奸噷灝辨垚浜嗕粈涔堟搗閲忔暟鎹紝瀵逛亢鏉ヨ璺熺帺浼肩殑錛屽尯鍖哄嚑鍗冧竾鍢涳紝涓嶈繃鏄亢鎷挎潵嫻嬭瘯鐢ㄧ殑銆?/span></p> <p><span>鍘誨勾涓仛浜嗕釜</span><span>md5 hash</span><span>鍙嶆煡鐨勪笢瑗匡紝鏁版嵁閮芥槸鍑犵櫨浜垮埌鍑犱竾浜跨殑錛屽悗鏉ョ殑鏁堟灉灝辨槸涓涓枃浠跺彲瀛樹竾浜胯褰曪紝涓嬈℃煡璇㈠鉤鍧?/span><span>1.2</span><span>嬈?/span><span>IO</span><span>錛屽嵆浣垮叏鏀懼湪</span><span>SATA</span><span>紓佺洏涓婁篃灝卞崄鏉ユ縐掕屽凡銆?/span></p> <p><span>鍖哄尯鍑犲崈涓囨潯璁板綍鍜嬪氨鍙粈涔堟搗閲忔暟鎹憿錛屾搗閲忎釜姣涘晩錛屽唴瀛橀兘鏀懼緱涓嬬殑鍙粈涔堟搗閲忥紝鐜板湪鏈嶅姟鍣ㄥ姩涓嶅姩閮芥槸鍑犲崄</span><span>G</span><span>鍐呭瓨錛屽尯鍖哄崈涓囨牴鏈畻涓嶄笂浠涔堬紝鏌ヨ瀹氫綅閮藉彲鍒板井濡欎簡錛?/span><span>1</span><span>縐掓彃鍏ヨ嚦灝戝崈涓囨潯浜嗭紝灞呯劧榪樼湅鍒?/span><span>1000</span><span>鏉℃彃鍏ョ殑嫻嬭瘯錛岀湡鏄笉寰椾笉浣╂湇鍥藉唴榪欏府鍨冨溇鐮旂┒鐢熺殑姘村鉤錛屼篃涓嶇煡閬撹繖縐嶈鏂囧拫灝辮兘閫氳繃瀹℃煡錛屽彧鑳藉緱鍑虹粨璁轟粬浠殑鑰佸笀涔熼兘鏄尓銆?/span></p> <p><span><span>         </span></span><span>楠傚綊楠傝嚜宸辯殑闂榪橀渶瑕佺戶緇姫鍔涳紝瀵瑰挶鐩墠鐨勯渶姹傛潵璇磋嚜宸辯鐞嗘暟鎹紝鍗充嬌涓涓嚎紼嬮兘鎼炲緱瀹氾紝鍥犱負涓嶈繃鍖哄尯鍑犱釜琛紝鍑犲崄涓囨潯璁板綍鑰屽凡錛屼笉榪囪繖縐?/span><span>10</span><span>騫村墠鍜卞氨浼氱殑鎶鏈繕鐪熸槸鎷夸笉鍑烘墜錛屾庝箞鐨勪篃寰楀仛寰楁洿濂戒竴鐐癸紝鍛靛懙錛岀戶緇爺絀跺惂錛屽綰跨▼涓嬪唴瀛樻暟鎹簱錛屼粠姒傚康涓婄湅鐨勭‘鏄釜寰堟湁鍚稿紩鍔涚殑涓滆タ錛岃鏄ц兘璺熷緱涓婏紝鍏跺疄鍦ㄥ緢澶氬湴鏂瑰彲浠ュ彇浠f櫘閫氱殑鏁版嵁緇撴瀯鐢ㄦ硶浜嗭紝鍙互澶уぇ鍑忓皯緙栫▼闅懼害錛岀敋鑷蟲垜鍦ㄦ兂濡傛灉鏈変釜鏀寔浜嬪姟鐨勫唴瀛樻暟鎹簱錛屼箣鍓嶈璁$殑</span><span>cad</span><span>綾昏蔣浠剁殑</span><span>undo/redo</span><span>閮藉彲浠ョ敤浜嬪姟鏉ュ疄鐜幫紝瀹屽叏鍙互鎶涘純鍏堝墠璁捐鐨勫鏉傜粨鏋勶紝鍏跺疄榪欑涓滆タ鍗充嬌涓嶇敤鍐呭瓨鏁版嵁搴撳氨綆楁槸鐢ㄤ釜</span><span>sqlite</span><span>閮藉畬鍏ㄨ兘鎼炲畾錛屽攭錛屽線浜嬩笉鍫洖棣栧晩錛岀湅鏉ユ暟鎹簱鏂歸潰鐨勭‘寰楀鑺卞姛澶紝鐗瑰埆鏄綰跨▼鍜屽垎甯冨紡妯″紡涓嬬殑鍐呭瓨鏁版嵁搴撱?/span></p> <p> </p> <p> </p> <img src ="http://m.shnenglu.com/oldworm/aggbug/139015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/oldworm/" target="_blank">琚佹枌</a> 2011-01-21 13:37 <a href="http://m.shnenglu.com/oldworm/archive/2011/01/21/139015.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏈榪戦」鐩灦鏋勫強鍗忚鍐崇瓥http://m.shnenglu.com/oldworm/archive/2011/01/11/138330.html琚佹枌琚佹枌Tue, 11 Jan 2011 05:33:00 GMThttp://m.shnenglu.com/oldworm/archive/2011/01/11/138330.htmlhttp://m.shnenglu.com/oldworm/comments/138330.htmlhttp://m.shnenglu.com/oldworm/archive/2011/01/11/138330.html#Feedback3http://m.shnenglu.com/oldworm/comments/commentRss/138330.htmlhttp://m.shnenglu.com/oldworm/services/trackbacks/138330.html 

 

鏈榪戠粰鑷繁鎹簡涓佹澘錛屽繖浜嗕竴孌墊椂闂達紝鎵浠ユ湁鍑犱釜鏈堟病鍐欏崥瀹紝浠婂悗榪樻槸瑕佷簤鍙栧鍐欏晩錛屽懙鍛點?/span>

 

鎹㈡潵鏂板湴鏂癸紝絎竴浠跺ぇ鐨勪簨鎯呭氨鏄慨鏀瑰悗绔灦鏋勫拰閫氫俊鍗忚錛屾灦鏋勪篃璁捐寰楀緢鏅氾紝鍥犱負榪欒竟鐨勪笟鍔′笉闇瑕佸お榪囧鏉傜殑鍚庣錛屾墍浠ュ氨綆鍗曡璁′簡涓涓嬶紝鍩烘湰鏄弬鐓?/span>web鐨勬ā鍨嬶紝絎﹀悎鎴戜竴璐殑鍚?/span>web瀛︿範鐨勬濇兂錛屽紕浜嗕釜gate綆$悊鍏ュ彛錛岀浉褰撲簬web涓嬬殑webserver錛屽悗绔叾浠栨湇鍔″櫒鎸傚湪璇?/span>gate涓嬶紝鐩稿綋浜?/span>web妯″瀷涓嬬殑appserver錛屾垨鑰?/span>fastcgi妯″瀷鐨?/span>fastcgi榪涚▼錛?/span>gate涓婄鐞嗚繛鎺ャ佸悎娉曟ф嫻嬨佺櫥褰曘佸姞瀵嗐佸帇緙┿佺紦瀛樸?/span>Gate鍜屽悗绔氫俊鏈潵鎯沖弬鐓?/span>fastcgi鍗忚錛屼絾鐪嬩簡涔嬪悗瑙夊緱fastcgi鍗忚榪樻槸澶嶆潅浜嗭紝鎵浠ュ氨璁捐浜嗕竴涓洿綆鍗曠殑鍗忚錛?/span>gate鍜屽悗绔?/span>server涔嬮棿鍙紶閫?/span>key:value鍨嬫暟鎹錛?/span>value涓嶅眬闄愪簬瀛楃涓詫紝鍙互鏄換鎰忔暟鎹紝榪欐牱鍩烘湰婊¤凍浜嗗綋鍓嶇殑闇姹傦紝絎竴鐗堟斁涓婂幓涔嬪悗涔熻繍琛岃壇濂斤紝鍒頒粖澶╀篃鍩烘湰鎸佺畫紼沖畾榪愯蹇竴涓湀浜嗭紝娌″嚭榪囦粈涔堜簨鎯呫傜敱浜庡湪gate榪欒竟緙撳啿浜?/span>job綆$悊錛屾墍浠ュ悗绔?/span>server鍗囩駭寰堟柟渚匡紝闅忔椂鍙叧闂洿鏂幫紝gate浼氬湪紿楀彛鏃墮棿鍐呭皢鏈墽琛屽畬鎴愮殑浠誨姟閲嶆柊鎻愪氦錛屾湁姝ゅ姛鑳藉彲鏀懼績澶ц儐鐨勫崌綰у悗绔紝榪欎釜鏈堣繖鏍風殑宸ヤ綔鍋氫簡鍑犳錛屽湪鏋舵瀯淇敼涔嬪墠榪欐牱鐨勪簨鎯呭嚑涔庢槸涓嶆暍鍋氱殑錛屽洜涓轟竴鏃﹀崌綰ф墍鏈夌敤鎴峰叏閮ㄦ柇寮榪炴帴錛岃岀幇鍦ㄧ敤鎴峰垯鍩烘湰鏃犳劅瑙夈?/span>Gate涓婄殑緙撳瓨灞備負鍚庣鍑忓皯浜嗕竴浜涘帇鍔涳紝榪欎釜緙撳瓨鏄寜鐓ц姹傜殑md5涓?/span>key鍋氱殑錛屽茍鏍規嵁鍗忚閰嶇疆鏃舵晥錛屾湁姝?/span>cache鍚庣澶у鏁版湇鍔″彲涓嶈璁$紦瀛樻垨闄嶄綆緙撳瓨璁捐鐨勫鏉傚害銆?/span>Gate涓婇拡瀵規晱鎰熸暟鎹粺涓鍋氫簡鍔犲瘑澶勭悊錛屼富瑕佹槸杈涜緵鑻﹁嫤鏁寸悊鐨勬暟鎹笉鑳借交鏄撹绔炰簤瀵規墜紿冨幓浜嗭紝鍛靛懙銆?/span>Gate涔熷仛浜嗗帇緙╋紝鐜板湪鏄拡瀵?/span>>=128闀垮害鐨勫寘榪涜鍘嬬緝錛屼嬌鐢ㄤ簡qlz錛屽帇緙╂晥鐜囪繕鏄緢涓嶉敊鐨勶紝閫熷害寰堝揩銆傜洰鍓?/span>gate鍚庣鎸傛帴鐨勬棦鏈?/span>win涓婄殑server涔熸湁linux涓婄殑server錛岃繖鏄竴寮濮嬪氨榪欎箞瑙勫垝鐨勶紝鐜板湪鐪嬫潵褰撳垵鐨勭洰鐨勮揪鍒頒簡錛屾販鍚堝彂鎸ュ悇鑷殑浼樺娍錛屾湁鐨勯」鐩湪鍘熸湁緋葷粺涓婅窇寰楀ソ濂界殑錛屾病蹇呰閲嶆柊寮鍙戝槢銆?/span>

 

鍗忚璁捐涓婃湰鏉ユ垜鏄鍒掍簩榪涘埗娣峰悎json鏍煎紡錛屼互浜岃繘鍒朵負涓伙紝浣嗗皾璇曚簡涓涓崗璁箣鍚庡彂鐜幫紝榪欒竟鐨勫皬浼欏瓙浠鐩存帴鎿嶇旱鍐呭瓨鏅亶鎶鏈笉榪囧叧錛屼粬浠ぇ澶氭槸浠?/span>java寮濮嬬殑錛屽悗鏉ユ墠瀛︿範c錛屽瀛楃涓茬敤寰楀緢鐔熺粌錛屾潈琛′箣涓嬮噰鐢ㄤ簡json涓轟富錛屾販鍚堜簩榪涘埗涓鴻緟鐨勬柟妗堬紝榪欐牱淇敼涔嬪悗鐨勫崗璁拰浠栦滑涔嬪墠浣跨敤鐨?/span>xml綾諱技錛屽氨鏄洿灝忔洿绱у噾涓鐐癸紝浣跨敤鏂規硶涓婂緢綾諱技錛屼粠鐜板湪鐨勬晥鏋滅湅榪樿錛屼嬌鐢?/span>json鏍煎紡涓轟富鐨勫崗璁綋鐒朵笉鑳借窡浣跨敤pb涔嬬被鐨勭浉姣旓紝瑙f瀽鏁堢巼涓婂ぇ綰﹀崟綰跨▼姣忕瑙f瀽20鏉ヤ竾10涓?/span>obj鐨勫璞★紝閫熷害涓婁笉綆楀お蹇絾涔熶笉綆楀お鎱紝瀵逛粯涓縐掕嚦澶氬嚑涓囨暟鎹寘鐨勫簲鐢ㄦ潵璇磋繕鏄鐨勶紝鍥犱負鐜板湪cpu璁$畻鑳藉姏鏅亶榪囧墿錛屼嬌鐢?/span>json鐨勫彟涓ソ澶勫氨鏄鍒犲瓧孌靛緢鏂逛究錛屽悇涓増鏈箣闂翠笉闇瑕佸お鑰冭檻鐗堟湰鐨勯棶棰橈紝瑕佹槸鍏ㄧ敤浜岃繘鍒舵牸寮忓氨瑕侀夯鐑﹀緢澶氫簡錛屽湪浣跨敤鍘嬬緝涔嬪悗錛岀洰鍓嶇殑json鏍煎紡鍗忚姣斾箣鍓嶇殑xml鍗忚鍑忓皯浜?/span>2/3鐨勫甫瀹戒嬌鐢紝鎬諱綋鏁堟灉榪樻槸鍙互鐨勩備嬌鐢?/span>json璋冭瘯涔熷緢鏂逛究錛屾垜鎻愪緵浜嗕竴涓伐鍏鳳紝鍐欏悗绔殑灝辯洿鎺ョ敤璇ュ伐鍏鋒寜鐓?/span>json鏍煎紡鏀跺彂鏁版嵁錛屾棤闇絳?/span>client寮鍙戝ソ浜嗗啀鍘誨仛鍚庣錛屼箣鍚庡仛client涔熷緢鏂逛究錛岃姹傚彂榪囧幓涔嬪悗榪斿洖鏉ョ殑灝辨槸鏍囧噯鐨?/span>json鏍煎紡鏁版嵁錛屽悓鏍風殑瑙f瀽鏂規硶錛屾瘡涓笉鍚岀殑搴旂敤灝辨寜鐓т笉鍚岀殑鏍煎紡澶勭悊涓嬪嵆鍙紝鍜?/span>web絳夋ā鍧椾氦浜掍篃寰堟柟渚匡紝榪欏彲綆楁槸棰濆鐨勫ソ澶勪簡銆?/span>

 

鎬諱箣錛岃櫧鐒?/span>json鏍煎紡瀛樺偍鏁堢巼鍜岃В鏋愭晥鐜囪窡浜岃繘鍒舵柟寮忚繕宸崐涓噺綰у埌涓涓噺綰э紝浣嗗悎鐞嗕嬌鐢ㄨ繕鏄彲浠ョ殑錛岀壒鍒槸璺?/span>xml鐩告瘮浼樺娍寰堟槑鏄撅紝鏉冭 浣跨敤鍚э紝褰撶劧榪芥眰鏋佽嚧鏁堢巼鍙兘榪樻槸鐢?/span>pb涔嬬被鐨勬洿鍚堥備竴浜涳紝鎴栬呰嚜宸辮璁?/span>tlv鏍煎紡銆?/span>

 



琚佹枌 2011-01-11 13:33 鍙戣〃璇勮
]]>
鍚圭墰澶皯錛屼互鍚庤澶氬惞http://m.shnenglu.com/oldworm/archive/2010/10/03/128475.html琚佹枌琚佹枌Sun, 03 Oct 2010 06:26:00 GMThttp://m.shnenglu.com/oldworm/archive/2010/10/03/128475.htmlhttp://m.shnenglu.com/oldworm/comments/128475.htmlhttp://m.shnenglu.com/oldworm/archive/2010/10/03/128475.html#Feedback0http://m.shnenglu.com/oldworm/comments/commentRss/128475.htmlhttp://m.shnenglu.com/oldworm/services/trackbacks/128475.html鏄ㄥぉ鍘昏涓や釜鑰佷埂錛屽騫寸殑鏈嬪弸鍚屽錛屼篃鏄悶鎶鏈殑錛屽ぇ瀹墮兘鍦ㄤ笂嫻鳳紝鍙槸浜ゆ祦涓嶆槸澶錛岃亰璧鋒垜鍋氳繃鐨勪竴浜涗笢瑗匡紝浠栬寰椾笉澶х浉淇★紝鎴戣鎴戝啓鐨勮繙紼嬫帶鍒剁▼搴忓叏dll緇勬垚錛屾墍鏈夋ā鍧楀彲鐑崌綰э紝鍖呮嫭涓繪ā鍧楋紝涓繪ā鍧楀皬浜?/span>20k錛屼粬浼間箮闅句簬鐩鎬俊錛屾垜璺熶粬璇磋繖涓▼搴忚繕鏄?/span>2001騫村仛鐨勶紝浠栧氨鏇撮毦鐩鎬俊浜嗐傚悗鏉ュ張璇磋搗鎴戞渶榪戝仛鐨勯偅涓簯璁$畻鐨勪環鏍兼煡璇紝浠栦篃寰堥毦鐩鎬俊搴曚笅鏄簯璁$畻錛岀敱浜庢病甯︽満鍣ㄤ篃娌℃硶緇欎粬鐪嬪悗鍙版湇鍔″櫒錛屾墍浠ユ垜浼拌浠栨渶鍚庤繕鏄崐淇″崐鐤戝惂銆備笂鍛ㄥ彟涓涓湅鍙嬭浠栦滑鑰佹澘鏈変釜欏圭洰鍗佹潵涓漢鍋氫簡3騫達紝涓鐩村仛涓嶇ǔ瀹氾紝鎴戣緇欐垜涓孌墊椂闂存垜鑲畾鑳芥妸浠栨暣紼沖畾錛屽悗鏉ョ粰浠栫湅浜嗘垜涔嬪墠鍋氱殑涓浜涗笢瑗匡紝娓告垙絳夛紝浼間箮浠栬繕鍦ㄦ鐤戞垜鐨勮兘鍔涳紝榪欏嚑涓叾瀹為兘綆楁槸瀵規垜鏈変簺浜嗚В鐨勬湅鍙嬩簡錛岀湅鏉ユ垜榪樻槸瀹d紶寰楀お灝戝晩銆傛垜鐭ラ亾澶у閮藉鍑鴻韓澶у叕鍙哥殑浜烘湁縐嶅磭鎷滐紝鎴戠瓑涓鐩村湪灝忓叕鍙告販鐨勪漢娌′粈涔堜漢鐬у緱涓婏紝鍙槸鎴戝張涓嶈兘璺熶粬浠鍝勾鍝湀錛屾垜鍒版煇涓叕鍙歌漿浜嗕笅錛岀湅浜嗘煇鏌愬啓鐨勪唬鐮侊紝浣犳墍宕囨嫓鐨勪漢涓嶈繃濡傛錛屽摢涓伐紼嬮噷闈㈠啓浜嗕釜璐ョ瑪 絳夌瓑

鍙兘鎴戣韓杈逛篃灝卞悎浣滀紮浼淬佹浘緇忕殑鑰佹澘銆佸悓浜嬨佹晫浜虹煡閬撴垜鍒板簳浠涔堟按騫籌紝2000騫寸殑鏃跺欏氨甯﹂槦鍋氬嚑鍗佷竾琛岀殑欏圭洰錛岃繛緇仛浜嗗嚑涓紝涓轟粬浠敵璇瘋蔣浠朵紒涓氬瀹氬熀紜銆備簯璁$畻鐨勪環鏍兼煡璇紝3鍛ㄥ畬鎴愶紝甯?/span>2涓鎴風鐨勬鐗屾父鎴忓甫浜嗕袱涓湅鍙嬩竴璧峰崐騫村畬鎴愶紝鍏ㄩ儴妯″潡鎺ュ彛鍖栵紝妯″潡鍙崟鐙崌綰с?/span>Netdongle錛屼竴涓?/span>master銆?/span>slave澶氶噸淇濇姢鐨勭綉緇滈獙璇佺郴緇燂紝鏀寔鐢辨帶鍒剁涓婁紶dll銆?/span>db絳夛紝涔熷氨涓涓湀瀹屾垚銆傝繖浜涚▼搴忎笂綰夸箣鍚庡氨鍑犱箮涓嶇敤淇敼錛屼竴鐩寸ǔ瀹氳繍琛屽摝錛屼竴鑸殑紼嬪簭瑕佸仛鍒扮涓鐗堢増鏈嚭鍘誨氨鍑犱箮涓嶅嚭閿欐槸寰堥毦鐨勶紝娌℃湁涓瀹氬姛鍔涚殑浜烘槸鍋氫笉鍒扮殑銆?/span>

鏄ㄥぉ鍚逛簡涓嬬墰錛屾垜璇?/span>windows涓嬪簲鐢ㄥ眰鐨勮蔣浠跺熀鏈病鏈夊仛涓嶅嚭鏉ョ殑錛屾垨璁哥墰鍚瑰緱鏈夌偣澶э紝閭f湅鍙嬫儕璁朵簡涓涓嬨?/span>

浠婂勾婀跨柟娌誨ソ涔嬪悗鍙戠幇鑷繁鎴樻枟鍔涙彁鍗囧緢澶氾紝涔嬪墠鍋氫簨鎯呮昏寰楀樊涓鍙f皵錛岀簿鍔涗笉嫻庯紝鐜板湪瑙夊緱綺懼姏鍏呮矝錛岄厭涔熻兘鍠濅簡錛屾椿涔熻兘騫蹭簡錛岄熷害涔熷揩浜嗭紝涔熸暍鍑哄幓璺熷埆浜轟氦嫻佷簡錛屼箣鍓嶄竴鐩磋嚜鍗戯紝娌$梾鐪熷ソ鍟娿?/span>

浠ュ悗瑕佸瀹d紶錛屽鍚圭墰鍟婏紒



琚佹枌 2010-10-03 14:26 鍙戣〃璇勮
]]>
鎴戠殑緗戠粶妯″潡璁捐絎簩鐗?/title><link>http://m.shnenglu.com/oldworm/archive/2010/10/03/128474.html</link><dc:creator>琚佹枌</dc:creator><author>琚佹枌</author><pubDate>Sun, 03 Oct 2010 06:25:00 GMT</pubDate><guid>http://m.shnenglu.com/oldworm/archive/2010/10/03/128474.html</guid><wfw:comment>http://m.shnenglu.com/oldworm/comments/128474.html</wfw:comment><comments>http://m.shnenglu.com/oldworm/archive/2010/10/03/128474.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://m.shnenglu.com/oldworm/comments/commentRss/128474.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/oldworm/services/trackbacks/128474.html</trackback:ping><description><![CDATA[<p>07騫存垜鍐欎簡涓綃囨枃绔犲彨銆婃垜鐨勭綉緇滄ā鍧楄璁°嬶紝濮戜笖鍙偅涓負絎竴鐗堝惂錛岀敱浜庢寔緇緗戠粶妯″潡榪涜鏀硅繘錛屾墍浠ョ幇鍦ㄧ殑瀹炵幇鍜屽綋鏃舵湁寰堝ぇ鏀瑰彉錛屽姞涓婁笂灞傚簲鐢ㄨ秺鏉ヨ秺澶氾紝鍙堢粡榪囦簡鍑犲勾鏃墮棿鑰冮獙錛岀幇鍦ㄧ殑瀹炵幇鏂瑰紡姣斾箣鍓嶇殑鏇寸伒媧繪洿鏈夋晥鐜囷紝涔熷洜涓烘渶榪戠湅浜嗕竴浜涗漢鍋氱綉緇滅▼搴忓騫寸珶姣棤寤烘爲錛屼竴鐩磋鐢ㄥ埆浜哄啓鐨勭綉緇滄ā鍧楋紝鎵浠ユ湁鎰熻屽啓姝ゆ枃錛屼負浜嗕嬌寰楁鏂囦笉鍙椾笂涓綃囥婃垜鐨勭綉緇滄ā鍧楄璁°嬬殑褰卞搷錛屾垜鍐沖畾鍐欎箣鍓嶄笉鐪嬪師鏉ョ殑鏂囩珷錛屾墍浠ユ鏂囪窡鍘熸枃閭g瘒鏂囩珷鍙兘娌℃湁澶鐩鎬技鎬с?br> 涓涓熀鏈殑緗戠粶妯″潡錛屾棤闈炲氨鏄鐞哊涓繛鎺ワ紝蹇熷鐞嗘瘡涓繛鎺ョ殑鏀跺彂鏁版嵁銆佹秷鎭瓑錛屾墍璋撳ソ鐨勭綉璺ā鍧楋紝鏃犻潪灝辨槸紼沖畾銆侀珮鏁堛佺伒媧伙紝涓嬮潰鍒嗗嚑閮ㄥ垎鏉ュ啓錛?br> 涓銆?榪炴帴綆$悊<br> 涔嬫墍浠ラ鍏堝啓榪炴帴綆$悊錛屾槸鍥犱負榪炴帴綆$悊鏄牳蹇冿紝涔熸槸鏈闅劇殑鍦版柟錛屾垜鍐欑涓涓綉緇滃簱涔嬪墠錛屾悳绱㈣繃寰堝褰撴椂鍙互鎵懼埌鐨勪緥瀛愬伐紼嬶紝褰撴椂鍑犱箮鎵句笉鍒板彲紼沖畾榪愯鐨勫伐紼嬶紝褰撶劧鏇存壘涓嶅埌濂界殑錛屼簬鏄懜绱㈠墠榪涳紝鏈熼棿瀵硅繛鎺ョ鐞嗕嬌鐢ㄤ簡鍚勭鏂規硶錛屼粠鏈鏃╀竴涓猚s錛堜復鐣屽尯CriticalSection錛屾垜綆縐癱s錛夛紝recv send閮界敤榪欎釜cs錛屽埌鍚庢潵send鐢ㄤ竴涓猚s錛宺ecv鐢ㄤ竴涓猚s錛岀敤澶氫釜鐨勬椂鍊欒繕鍑鴻繃閿欙紝鏈鍚庝嬌鐢ㄤ竴涓猚s+涓涓師瀛愬紃ef綆$悊涓涓繛鎺ワ紝姣忎釜榪炴帴send鐨勬椂鍊欑敤cs錛宺ecv鐨勬椂鍊欑敤ref錛屽鏋滆榪炴帴鐨勬秷鎭璺ㄧ嚎紼嬪紓姝ユ墽琛岋紝涔熶嬌鐢╮ef錛屽姝よ緝綆鍗曠殑瑙e喅浜嗚繛鎺ョ鐞嗙殑闂銆?br> 鍚屾牱浣跨敤鐢熷瓨鏈熺鐞嗘柟娉曪紝涔熸湁浜虹敤鏅鴻兘鎸囬拡錛岃櫧鐒跺師鐞嗗拰鎴戠洿鎺ユ搷綰電敓瀛樻湡涓鏍鳳紝浣嗗疄鐜版柟娉曟瘯绔熶笉鍚岋紝涓嶈繃鎴戜負浜嗚瀹炵幇渚濊禆灝戜竴浜涙病鏈夊紩鍏ユ櫤鑳芥寚閽堛?br> 褰撶劧鎴戝悗鏉ヤ篃鍙戠幇寰堝浜轟笉鏄敤榪欑鏂規硶錛屽鏈変簺浜哄氨id鏉ョ鐞嗚繛鎺ワ紝姣忎釜榪炴帴鍒嗕釜id錛屽叾浠栨搷浣滃叏閮ㄧ敤id錛屾瘡嬈″榪炴帴鐨勮皟鐢ㄥ厛緲昏瘧涓涓嬶紝濡傛灉id鎵懼緱鍒版槧灝勭洰鏍囧氨璋冪敤錛屽惁鍒欏氨璇存槑璇ヨ繛鎺ヤ笉瀛樺湪浜嗭紝榪欑鏂規硶綆鍗曞彧鏄笉鐩存帴錛屽浜嗕釜鏌ユ壘榪囩▼錛屽彟澶栨煡鎵劇殑鏃跺欏彲鑳借繕闇瑕佸叏灞閿侊紙榪欎緷璧栦簬榪炴帴鏁版嵁緇勭粐錛夈?br> 涔熸湁浜轟嬌鐢ㄤ竴涓嚎紼嬬鐞嗚繛鎺ワ紝鍏朵粬鎵鏈変笌璇ヨ繛鎺ユ湁鍏崇殑鐢熷瓨鏈熼棶棰樺叏閮ㄥ埌璇ョ嚎紼嬪鐞嗭紝榪欐牱涔熸槸鍙鐨勶紝鍙槸闇瑕佸仛涓涓緝濂界殑鍖呰錛屽鏋滃寘瑁呭ソ涓婂眰璋冪敤鏂逛究錛屽鏋滃寘瑁呬笉濂斤紝鍙兘涓婂眰璋冪敤灝辨湁涓浜涚害鏉熴?br> 铏界劧鍚勭鏂規硶閮芥湁浜轟嬌鐢紝浣嗘垜涓鐩撮夋嫨鐩存帴鐨勭敓瀛樻湡綆$悊鏂規硶錛屽叾瀹炲唴閮ㄥ疄鐜扮殑鏃跺欒繕鏄湁寰堝浼樺寲鎺柦鐨勶紝鍑忓皯浜嗗ぇ閲廰ddref銆乺elease鐨勮皟鐢紝榪涗竴姝ユ彁楂樹簡鏁堢巼銆?br> 浜屻?綰跨▼緇?br> 鎴戞渶鍒濆仛緗戠粶搴撶殑鏃跺欒繕涓嶆槸寰堟竻妤氫笂灞傚浣曚嬌鐢ㄨ繖涓簱錛屽悗鏉ュ湪涓婇潰鍋氫簡鍑犱釜搴旂敤涔嬪悗鎱㈡參鏈変簡鏇村鎯蟲硶錛屾渶榪戠殑緗戠粶搴撴槸璁捐浜嗚繖涔堝嚑緇勭嚎紼嬶細io綰跨▼緇勩佸悓姝ョ嚎紼嬬粍銆佸紓姝ョ嚎紼嬬粍銆佹椂閽熺嚎紼嬬粍銆乴og綰跨▼緇勶紝姣忕粍綰跨▼閮藉彲寮鍙叧錛屽氨綆梚o綰跨▼緇勪篃鏄彲鍏崇殑錛岃繖鍙槸涓轟簡鏁翠釜搴撴洿鐏墊椿閫傜敤鎬ф洿騫挎硾錛屽鍙敤鍚屾綰跨▼緇勬垨寮傛綰跨▼緇勪粎灝嗚繖涓嚎紼嬬粍褰撲竴涓秷鎭槦鍒椾嬌鐢ㄣ?br> Io綰跨▼緇勫氨鏄鐞唅o鏀跺彂鐨勶紝listen recv send 浠ュ強瑙e瘑瑙e帇緙╅兘鏄湪榪欑粍綰跨▼錛屼竴鑸繖緇勭嚎紼嬩細寮2涓垨2*cpu涓?br> 鍚屾綰跨▼緇勶紝涓鑸繖緇勭嚎紼嬪紑1涓紝鐢ㄦ潵澶勭悊logic銆?br> 寮傛綰跨▼緇勶紝榪欑粍綰跨▼鏍規嵁闇瑕佸紑0涓垨n涓紝綆鍗曞簲鐢ㄦ棤db絳夋參閫熸搷浣滅殑搴旂敤涓嶅紑錛屾湁寰堝db絳夋參閫熸搷浣滅殑鍙互寮寰堝涓?br> 鏃墮挓綰跨▼緇勶紝涓鑸笉寮鎴栧紑1涓?br> Log綰跨▼緇勶紝涓鑸紑1涓紝涓昏涓轟簡閬垮厤鍏朵粬綰跨▼璋冪敤WriteLog鐨勬椂鍊欒紓佺洏io闃誨錛屾墍浠ュ紕浜嗕竴涓猯og綰跨▼銆?br> 鍏跺疄榪樻湁涓涓富綰跨▼錛屾垜鐨勬瘡緇勭嚎紼嬶紙鍖呮嫭涓葷嚎紼嬶級閮芥敮鎸佷簨浠跺拰瀹氭椂鍣紝io綰跨▼銆佸悓姝ョ嚎紼嬨佸紓姝ョ嚎紼嬬粍銆佹椂閽熺嚎紼嬬粍銆佺敋鑷砽og綰跨▼緇勯兘鏀寔浜嬩歡鍜屽畾鏃跺櫒錛屽埌鍘誨勾鎴戣繕鍙槸璁╂瘡緇勭嚎紼嬮兘鏀寔浜嬩歡錛屼粖騫翠負浜嗘洿濂界殑浣跨敤鏃墮挓鎴戠粰姣忕粍綰跨▼璁捐浜嗗畾鏃跺櫒錛岀幇鍦ㄥ畾鏃跺櫒綰跨▼緇勬湁鐐歸浮鑲嬬殑鍛抽亾錛屼竴鑸槸鐢ㄤ笉涓婁笓闂ㄧ殑瀹氭椂鍣ㄧ嚎紼嬬粍錛屼笉榪囨垜榪樻病鏈夊皢瀹冨垹鎺夛紝涓昏鍦ㄦ垜鐨勮璁¢噷闈紝瀹冨拰鍚屾寮傛綰跨▼緇勪竴鏍鳳紝閮藉彧鏄竴緇勭嚎紼嬶紝濡傛灉蹇呰鐨勬椂鍊欏彲浠ュ皢瀹冪敤浣滃悓姝ョ嚎紼嬫垨鑰呭紓姝ョ嚎紼嬬粍錛屾墍浠ョ戶緇繚鐣欎簡瀹冪殑瀛樺湪銆?br> 榪欏嚑緇勭嚎紼嬩箣闂撮兘鏄彲浜掑彂娑堟伅鐨勶紝鎵浠ヤ竴涓昏緫瑕佸紓姝ュ埌鍒殑綰跨▼鎵ц鏄潪甯告柟渚跨殑錛屽彧瑕佽皟鐢ㄤ竴涓婸ostXXEvent(TlsInfo *ptls, DWORD dwEvent, WPARAM wParam, LPARAM lParam);鎴戝嚟鍊熻繖涓璁′嬌寰楄繖濂楃綉緇滃簱鍑犱箮鍙互閫傜敤涓婂眰鍚勭搴旂敤錛屼笉綆℃槸闈炲父綆鍗曠殑緗戠粶搴旂敤榪樻槸澶嶆潅鐨勶紝涓妗嗘墦灝姐傚鏈綆鍗曠殑錛屼竴涓猧o綰跨▼鎼炲畾錛屽叾浠栫嚎紼嬪叏鍏籌紝瀵逛簬澶嶆潅鐨刬o綰跨▼+鍚屾+寮傛+log鍏ㄥ紑銆?br> 涓夈?鍐呭瓨姹?br> 鍐呭瓨姹犲叾瀹炴病鏈夋兂璞′腑鐨勯偅涔堢縐橈紝褰撶劧濡傛灉瑕佽涓涓綉緇滅▼搴忔寔緇?*24灝忔椂紼沖畾楂樻晥榪愯錛屽唴瀛樻睜鍑犱箮蹇呬笉鍙皯鐨勶紝鍐呭瓨姹犵殑浣滅敤棣栧厛鏄噺灝戝唴瀛樼鐗囷紝鍏舵鏄負浜嗘彁楂橀熷害錛屾垜鎯寵繖涓ょ偣寰堝鏄撴兂鏄庣櫧鐨勶紝鍏充簬鍐呭瓨姹犳垜涔嬪墠鍐欎簡緋誨垪鏂囩珷錛屽彲鍙傝冩垜鐨勫崥瀹細<br> <br>銆婂唴瀛樻睜涔嬪紩璦銆?<a >http://blog.csdn.net/oldworm/archive/2010/02/04/5288985.aspx</a><br> 銆婂崟綰跨▼鍐呭瓨姹犮?<a >http://blog.csdn.net/oldworm/archive/2010/02/04/5289003.aspx</a><br> 銆婂綰跨▼鍐呭瓨姹犮?<a >http://blog.csdn.net/oldworm/archive/2010/02/04/5289006.aspx</a><br> 銆奷lmalloc銆乶edmalloc銆?<a >http://blog.csdn.net/oldworm/archive/2010/02/04/5289010.aspx</a><br> 銆婄嚎紼嬪叧鑱斿唴瀛樻睜銆?<a >http://blog.csdn.net/oldworm/archive/2010/02/04/5289015.aspx</a><br> 銆婄嚎紼嬪叧鑱斿唴瀛樻睜鍐嶆彁閫熴?<a >http://blog.csdn.net/oldworm/archive/2010/02/04/5289018.aspx</a><br> <br>鍥涖?瀹氭椂鍣?br> 鍏充簬瀹氭椂鍣紝涓婇潰璁茬嚎紼嬬粍鐨勬椂鍊欏凡緇忚榪囷紝鎴戠幇鍦ㄧ殑璁捐鏄瘡涓嚎紼嬶紙鍖呮嫭涓葷嚎紼嬶級閮芥敮鎸佸畾鏃跺櫒錛岃皟鐢ㄦ柟娉曢兘鏄竴鏍風殑錛屽洖璋冨嚱鏁板艦寮忎篃鏄竴鏍風殑錛岀敱浜庡畾鏃跺櫒鏀懼埌鍚勭粍綰跨▼閲岄潰錛屾墍浠ュ噺灝戜簡綰跨▼涔嬮棿鐨勫垏鎹紝鎻愰珮浜嗘晥鐜囥?br> 鍏充簬瀹氭椂鍣紝鍙弬鑰冦婂畾鏃跺櫒妯″潡鏀歸犮?<a >http://blog.csdn.net/oldworm/archive/2010/09/11/5877425.aspx</a><br> <br>浜斻?鍖呮牸寮?br> 鍏充簬鍖呮牸寮忓彲鍙傝冦婂父鐢╟s紼嬪簭鑷畾涔夋暟鎹寘鎻忚堪銆?<a >http://blog.csdn.net/oldworm/archive/2010/03/24/5413013.aspx</a><br> <br>鍏?Buffer<br> 涔嬪墠鐨勬枃绔犲叾瀹炴垜涓鐩存病鏈夋彁榪囨垜鐨刡uffer錛屽叾瀹炴垜鐨刡uffer璁捐鏄緢鐏墊椿鐨勶紝鐜板湪瀹冨拰pool涔熸槸鏈変簺鍏寵仈鐨勶紝鎴戠殑poolset鍏跺疄搴曚笅灝辨槸鎸夌収鍚勭涓嶅悓澶у皬鐨刡uffer棰勮鐨勫昂瀵搞侭uffer鎴戣璁′負寰幆寮忥紝涓嶅厑璁稿洖緇曪紝鍖呭惈<br> Char *pbase 鍧楀熀鍧<br> Char *pread 褰撳墠璇繪寚閽?br> Char *pwrite 褰撳墠鍐欐寚閽?br> DWORD tag;<br> Buffer *next;<br> Capacity 鎬誨垎閰嶅昂瀵革紝涓婇潰鍒嗛厤鐨勬椂鍊欏彲鑳藉彧鏄寚瀹氫簡19錛屼絾瀹為檯鍙兘鍒嗛厤鐨勬槸32涓瓧鑺傦紝鎵浠ュ唴閮ㄧ敤鐨勬椂鍊欒鏍規嵁capacity鏉ユ渶澶ч檺搴︾殑鍒╃敤緙撳啿鍖恒?br> Buffer鍒嗛厤榪樺埄鐢ㄤ簡涓涓妧宸э紝浜嬪疄涓婂垎閰嶇殑鏃跺欐槸涓嬈″垎閰嶄竴涓渶瑕佺殑澶х紦鍐詫紝鍓嶉潰涓築uffer鑷韓鐨勬暟鎹紝鍚庨潰涓烘暟鎹儴鍒嗭紝pbase鎸囧悜鏁版嵁閮ㄥ垎錛岃繖鏍峰鐞嗗噺灝戜簡涓嬈″垎閰嶏紝鎴戜及璁″緢澶氫漢閮藉湪鐢ㄨ繖涓妧宸с?br> Pwrite鎬繪槸涓嶄細灝忎簬pread鐨勶紝浣唒read鍙兘鍜宲base涓嶄竴鏍鳳紝浠呭綋鍚庨潰絀轟綑絀洪棿涓嶅鐢ㄧ殑鏃跺欐墠鍙兘浼氱Щ鍔ㄦ暟鎹紝鍚﹀垯鏁版嵁涓嶄細縐誨姩銆?br> WSARecv鐨勬椂鍊欐垜鏄繖涔堝鐞嗙殑錛屽鏋滈嬈¤幏鍙栦簡涓涓寘鐨勪竴閮ㄥ垎錛屼絾buffer涓繕鏈夎凍澶熺殑絀洪棿鏀句笅鍖呯殑鍓╀綑閮ㄥ垎錛屾垜涓嶄細鍐嶅垎閰嶄竴涓猙uffer鍘籸ecv錛岃屾槸鐩存帴鐢ㄥ師buffer鎸囧畾涓涓悎閫傜殑鍋忕Щ鍜宻ize鍘籛SARecv錛岃繖鏍峰彲浠ユ渶澶ч檺搴︾殑鍑忓皯澶嶅埗銆?br> 鍒氭墠榪樻湁鏈嬪弸闂埌鎴憆ecv鐨勫眰嬈$粍緇囷紝鎴戠殑緗戠粶搴撻噷闈㈡槸榪欐牱緇勭粐鐨勶紝OnRecv鏄釜铏氬嚱鏁幫紝鏈鍩虹鐨処ocpClient鐨凮nRecv鍙鐞嗘暟鎹屼笉瑙f瀽鏍煎紡錛孖ocpClientMsg灝變細璁よ瘑榛樿鐨勪竴縐嶅寘鏍煎紡錛岃繖涓被鐨凮nRecv浼氬皢m_recvbuf涓殑鏁版嵁緇勭粐涓簃sg錛屽茍灝藉彲鑳界殑涓嬈¤繑鍥炴洿澶氫釜msg錛屽洖璋僌nMsg鍑芥暟錛岀敱涓婂眰鍐沖畾璇ユ秷鎭湪鍝釜綰跨▼澶勭悊錛岃繖鏍鋒垜璁や負鏄渶鐏墊椿鐨勶紝濡傛灉鏄釜寰堝皬鐨剆erver錛屽彲鑳界洿鎺ュ氨鍦╥o綰跨▼閲岄潰澶勭悊浜嗭紝涔熷彲postevent鍒板悓姝ョ嚎紼嬪鐞嗭紝浜﹀彲PostEvent鍒板紓姝ョ嚎紼嬪鐞嗐?br> <br>涓冦?TLSINFO<br> TlsInfo欏懼悕鎬濅箟灝辨槸姣忎釜綰跨▼鍏寵仈鐨勪竴緇勬暟鎹紝鏆傛椂鎴戣繕娌℃湁鐪嬪埌鍒漢榪欎箞璁捐錛屼篃璁告垜璁捐寰楁湁浜涘鏉備簡錛屽湪榪欎釜鏁版嵁閲岄潰鏈変竴浜涘父鐢ㄧ殑鍜岃綰跨▼鐩稿叧鐨勬暟鎹紝濡傝綰跨▼鐨勫垎閰嶅熀銆佹闀匡紝鐢ㄨ繖涓や釜鍙傛暟鍙姣忎釜綰跨▼鍒墮犲嚭鍞竴搴忓垪錛岃繕鏈夊父鐢╬ool鐨勫湴鍧錛屽tm_pool *p1k; tm_pool *p2k;… 榪欐牱璁捐浣垮緱瑕佸垎閰嶇殑鏃跺欑洿鎺ュ彇tm_pool錛屾渶澶ч檺搴︾殑鍙戞尌浜嗗垎閰嶉熷害錛岃繕鏈変竴浜涘父瑙勫弬閲弆ong c; long d; DWORD a; DWORD b;… 榪欏嚑涓煎彲鐞嗚В涓烘爤鍐呭鹼紝鍏跺疄涓轟簡鍑忓皯涓婂眰璋冪敤澶嶆潅搴︾殑錛屽鎴戝皢涓涓繛鎺ョ殑鍖呬粠io綰跨▼PostEvent鍒板悓姝ョ嚎紼嬪鐞嗭紝PostEvent棣栧弬鏁板氨鏄痶lsinfo錛孭ostEvent浼氭牴鎹畉lsinfo閲岄潰鐨勪竴涓唴閮ㄥ煎喅瀹氭槸涓嶆槸瑕佽皟鐢╝ddref錛屽洜涓烘垜鏈変釜鍦版柟棰勫浜?錛屾墍浠ュぇ澶氭暟鎯呭喌涓嬪湪io鍙戝埌鍏朵粬綰跨▼鐨勬椂鍊欐槸鏃犻渶璋冪敤addref鐨勶紝鎻愰珮浜嗘晥鐜囷紝tlsinfo閲岀殑鍏朵粬涓浜涘間笂灞傚簲鐢ㄥ彲浣跨敤錛岀敤鍦ㄩ昏緫澶勭悊絳夋儏鍐典笅銆?br> <br>鍏?鎬ц兘鍒嗘瀽<br> *nix涓嬫湁寰堝鐭ュ悕鐨勭綉緇滃簱錛屼絾鍦╳in涓嬬壒鍒槸浣跨敤iocp鐨勫簱閲岄潰錛屼竴鐩村氨娌℃湁涓涓兘浣滀負鍩哄噯鐨勫簱錛屽嵆浣縜sio涔熷洜涓哄嚭鏉ュお鏅氫笉涓哄ぇ澶氭暟浜虹啛鎮夎屼笉鑳芥垚涓哄熀鍑嗗簱錛宭ibevent鎺ocp鐢變簬閲囩敤0 buffer妯℃嫙鎵浠ヤ篃娌℃湁鍙戞尌鍑鴻凍澶熺殑鎬ц兘錛屽姣攕pserver鎴戞瘮瀹冨揩70%宸﹀彸錛屾垜鎬誨湪鎯寵鏄井杞兘灝嗕粬閭d釜iocp鐨勪緥瀛愬啓寰楁洿濂戒竴鐐瑰氨濂戒簡錛岃嚦灝戝鐨勪漢鏈変竴涓洿楂樹竴鐐圭殑鍩虹錛岃屼笉鑷充簬璁?a >http://www.codeproject.com/KB/IP/iocp_server_client.aspx</a>榪欐牱鐨勫瀮鍦句唬鐮侀兘鑳芥垚涓哄緢澶氫漢鐨勬牱鏉褲?br> <br>涔濄?鏉傝皥<br> 涓轟簡鍐欏ソ涓涓獁in涓嬬ǔ瀹氶珮鏁堢殑緗戠粶搴擄紝鎴?7騫寸殑鏃跺欏嚑涔庢悳閬嶄簡閭d釜鏃墮棿孌典箣鍓嶆墍鏈夎兘鎵懼埌鐨刬ocp渚嬪瓙錛岃繕鍖呮嫭閫氳繃鏈嬪弸絳夐斿緞鐪嬪埌鐨勫snda絳夌綉緇滃簱錛屽彲鎯滅湡娌℃壘鍒板ソ鐨勶紝澶у鏁頒緥瀛愭槸鍙澶氱嚎紼嬪彂璧峰嚑鍗冧釜榪炴帴涓嶆柇鍙戦佹暟鎹┈涓婂氨姝諱簡錛屽伓灝斿嚑涓笉姝葷殑錛堝寘鎷瑂nda鐨勶級鍙闅忔満榪炴帴騫舵柇寮灝變細浜х敓鍙ユ焺娉勬紡錛屽叧闂墍鏈夎繛鎺ヤ箣鍚庡彞鏌勫茍涓嶅叧闂瓑錛屼篃灝辨槸璇磋繖浜涗緥瀛愯繛鍩烘湰鐨勭敓瀛樻湡綆$悊閮芥病鎼炲畾錛岃兘閫氳繃鐢熷瓨鏈熺鐞嗗茍涓斾笉姝葷殑鍙湁鏈夐檺鐨勫嚑涓紝鍙儨鎬ц兘鍙堝お宸紝鏉叿鍟娿?br> 鏃╁勾鍐欑綉緇滃簱鐨勬椂鍊欎篃鍔犲叆浜唖odme鍦╣oogle涓婂緩鐨勯偅涓兢錛屽綋鏃剁兢榪樻槸寰堢儹闂圭殑錛屽彲鎯滃ぇ澶氭暟浜洪兘鏄懜绱紝鎵浠ュ緢澶氶棶棰樺彧鏄璁哄嵈浠庢棤瀹氳錛屾病鏈夎皝鑳借鏈嶅埆浜猴紝涔熸病鏈変漢鍙交鏄撹璇存湇錛岃鏄幇鍦ㄦ垨璁告湁涓浜涘緢鏈夌粡楠岀殑浜猴紝鍙儨閭d釜緹ょ敱浜嶨FW鐜板湪铏借兘璁塊棶涔熶笉澶ф椿璺冧簡銆?br> 鏈榪戠湅鍒版湁浜涘啓緗戠粶紼嬪簭7騫寸敋鑷蟲洿涔呯殑浜鴻繕鍦ㄧ敤libevent銆乤ce絳夋劅鎯沖緢澶嶆潅錛屽彲鎮茬殑鏄偅浜涗漢榪樻病鎰忚瘑鍒扮敤涓涓簱鍜屽啓涓涓簱鏈夊澶х殑鍖哄埆錛屽彲鑳介偅浜涗漢涓杈堝瓙涔熻璇嗕笉鍒板啓涓涓簱姣旂敤涓涓簱闅懼灝戯紝閭d簺浜轟互涓鴻繖浜涘簱鍩烘湰浼氱敤浜嗭紝璁╀粬鑷繁鍘誨啓涔熷熀鏈槸鐓ц繖涓ā寮忥紝涓嶄細鏈変粈涔堢獊鐮達紝灝辨棤闇鑷繁鍔ㄦ墜浜嗭紝鎮插搥鍟娿傚綋鐒訛紝瑕佸啓涓涓ǔ瀹氱殑緗戠粶搴撻渶瑕佽楄垂寰堝鏃墮棿錛岀壒鍒槸瑕佸啓涓涓兘鍜岀煡鍚嶅簱鎬ц兘鎺ヨ繎鎴栨洿濂界殑搴擄紝鏇存槸瑕佽垂紲炶垂鍔涳紝娌$偣鑰愬績鍜屾寔涔呭姏鏄笉鍙兘鍋氬ソ鐨勩傚湪涓枃棰嗗煙闅忎究鏌ヤ粈涔堢◢鏈変簺鍚嶆皵鐨勪唬鐮侊紝鎬繪槸鑳芥壘鍒板緢澶氬墫鏋愮被鏂囩珷錛屽彲鍘熷垱鐨勪笢瑗挎繪槸寰堝皯錛屼篃涓嶇煡閬撻偅浜涘ぇ渚犳庝箞鎼炵殑錛屼粈涔堥兘鑳藉墫鏋愬彲鎬庝箞鎬誨啓涓嶅嚭浠涔堝儚鏍風殑涓滆タ鍛€?br> 鍏跺疄鏈潵娌℃湁鎵撶畻鍐欒繖綃囨枃绔狅紝鍙兘鏄湅浜嗛檲紜曠殑muduo鎵嶄嬌寰楁垜鏈変簡鍐欏嚭鏉ョ殑鍐插姩錛屽ぇ姒傛槸鍙楀埌浠栫殑寮婧愰紦鍔卞惂銆?br> 璋ㄤ互姝ゆ枃璁板綍鏈漢鏈榪?騫村緗戠粶妯″潡鐨勪慨鏀瑰茍綆鐭葷粨銆?/p> <p> </p> <img src ="http://m.shnenglu.com/oldworm/aggbug/128474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/oldworm/" target="_blank">琚佹枌</a> 2010-10-03 14:25 <a href="http://m.shnenglu.com/oldworm/archive/2010/10/03/128474.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鎴戠殑緗戠粶妯″潡璁捐絎竴鐗?/title><link>http://m.shnenglu.com/oldworm/archive/2010/10/03/128473.html</link><dc:creator>琚佹枌</dc:creator><author>琚佹枌</author><pubDate>Sun, 03 Oct 2010 06:25:00 GMT</pubDate><guid>http://m.shnenglu.com/oldworm/archive/2010/10/03/128473.html</guid><wfw:comment>http://m.shnenglu.com/oldworm/comments/128473.html</wfw:comment><comments>http://m.shnenglu.com/oldworm/archive/2010/10/03/128473.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/oldworm/comments/commentRss/128473.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/oldworm/services/trackbacks/128473.html</trackback:ping><description><![CDATA[<p><span><strong><span>鎴戠殑</span><span><span>IOCP</span></span></strong><strong><span>緗戠粶妯″潡璁捐</span></strong></span></p> <p><span> </span></p> <p><span><span>涓轟簡璁捐涓涓ǔ瀹氭槗鐢ㄩ珮鏁堢殑</span><span><span>iocp</span></span><span>緗戠粶妯″潡錛屾垜鍓嶅墠鍚庡悗鑺變簡濂藉嚑涓湀鐨勬椂闂達紝涔熸浘闃呰榪囩綉涓婂緢澶氳祫鏂欏拰浠g爜錛屼絾鏄潪甯擱仐鎲撅紝鑳芥壘鍒扮殑璧勬枡涓鑸兘璇村緱寰堝惈緋婏紝寰堝皯鏈夊叿浣撶殑錛岃兘鎵懼埌鐨勪唬鐮佺鐪熸鑳藉晢鐢ㄧ殑緗戠粶妯″潡宸緱澶繙錛屽ぇ澶氬彧鏄紨紺轟竴涓嬫渶鍩烘湰鐨勫姛鑳斤紝鑰屼笖澶у鏄湁寰堝闂鐨勶紝涓昏闂濡備笅錛?/span></span></p> <p><span><span><span><span>1銆?/span> </span></span></span><span><span>寰堝浠g爜娌℃湁澶勭悊涓嬈′粎鍙戦佹垚鍔熼儴鍒嗘暟鎹殑鎯呭喌銆?/span></span></p> <p><span><span><span><span>2銆?/span> </span></span></span><span><span>鍑犱箮娌℃湁鎵懼埌鑳芥紜鐞嗘墍鏈夎祫婧愮殑浠g爜銆?/span></span></p> <p><span><span><span><span>3銆?/span> </span></span></span><span><span>澶у娌℃湁閲囩敤鐢?/span><span><span>pool</span></span><span>錛屾湁鐨勭敋鑷崇敾铔囨坊瓚崇敤浠涔?/span><span><span>map</span></span><span>鏌ユ壘瀵瑰簲瀹㈡埛绔紝娌℃湁鍏呭垎浣跨敤</span><span><span>perhandle, perio</span></span><span>銆?/span></span></p> <p><span><span><span><span>4銆?/span> </span></span></span><span><span>鎺ユ敹鍙戦佹暟鎹ぇ澶氭嫹璐濆お澶氭鏁般?/span></span></p> <p><span><span><span><span>5銆?/span> </span></span></span><span><span>鎺ユ敹綆$悊澶у寰堜綆鏁堬紝娌℃湁鍏呭垎鍙戞尌</span><span><span>iocp</span></span><span>鑳藉姏銆?/span></span></p> <p><span><span><span><span>6銆?/span> </span></span></span><span><span>鍑犱箮閮芥病鏈夋秹鍙婁笂灞傚浣曞鐞嗛昏緫錛屼篃娌℃湁鎻愪緵鐩稿簲瑙e喅鏂規錛堝鍚堝茍</span><span><span>io</span></span><span>綰跨▼澶勭悊鎴栧崟鐙昏緫綰跨▼錛夈?/span></span></p> <p><span><span><span><span>7銆?/span> </span></span></span><span><span>澶у娌℃湁鍒嗙嫻佹暟鎹拰鍖呮暟鎹?/span></span></p> <p><span><span>…</span></span></p> <p><span><span>闂榪樻湁寰堝錛屽氨涓嶄竴涓鍒楀嚭鏉ヤ簡錛屾湁涓瀹氳璁$粡楠岀殑浜哄簲璇ユ湁鍚屾劅銆傝鐪熸瑙e喅榪欎簺闂涔熶笉鏄偅涔堝鏄撶殑錛岀壒鍒槸鍦?/span><span><span>win</span></span><span>涓嬬敤</span><span><span>iocp</span></span><span>鐨勬椂鍊欒祫婧愰噴鏀炬槸涓夯鐑︾殑闂錛屾垜鍦ㄨ祫婧愮鐞嗕笂鑺變簡寰堝鏃墮棿錛岃搗鍒濅篃鐘簡寰堝閿欒錛屽悗鏉ュ湪鍑忓皯鍚屾瀵硅薄涓婂張鑺變簡涓嶅皯鏃墮棿錛堣搗鍒?/span><span><span>client</span></span><span>鐢ㄤ簡涓や釜鍚屾瀵硅薄錛屽悗鏉ュ噺灝戜負</span><span><span>1</span></span><span>涓級銆備笅闈㈡垜灝辨垜鎵璁捐鐨勭綉緇滄ā鍧楃殑鍚勪釜閮ㄥ垎榪涜綆鍗曠殑璁茶В</span></span></p> <p><strong><span><span>涓銆佸唴瀛樼鐞嗐?/span></span></strong></p> <p><span><span>鍐呭瓨綆$悊鏄噰鐢ㄦ睜妯″紡錛岃璁′簡涓涓熀紜姹犵被錛屽彲浠ョ鐞嗘煇鍥哄畾澶у皬鐨勬睜</span></span></p> <p><span><span>class CBufferPool</span></span></p> <p><span><span>{</span></span></p> <p><span><span><span><span>        </span>…</span></span></span></p> <p><span><span><span><span>        </span>void *newobj();</span></span></span></p> <p><span><span><span><span>        </span>void delobj(void *pbuf);</span></span></span></p> <p><span><span><span><span>        </span>…</span></span></span></p> <p><span><span>}; </span></span></p> <p><span><span>鍦ㄥ熀紜姹犵被涓婃彁渚涗簡涓涓ā鏉跨殑瀵硅薄姹?/span></span></p> <p><span><span>template <class T></span></span></p> <p><span><span>class CObjPool : public CBufferPool</span></span></p> <p><span><span>{</span></span></p> <p><span><span>public:</span></span></p> <p><span><span><span><span>        </span>T *newobj()</span></span></span></p> <p><span><span><span><span>        </span>{</span></span></span></p> <p><span><span><span><span>                </span>void *p = CBufferPool::newobj();</span></span></span></p> <p><span><span><span><span>                </span>T *pt = new(p) T;</span></span></span></p> <p><span><span><span><span>                </span>return pt;</span></span></span></p> <p><span><span><span><span>        </span>}</span></span></span></p> <p><span><span><span><span>        </span>void delobj(T* pt)</span></span></span></p> <p><span><span><span><span>        </span>{</span></span></span></p> <p><span><span><span><span>                </span>pt->~T();</span></span></span></p> <p><span><span><span><span>                </span>CBufferPool::delobj(pt);</span></span></span></p> <p><span><span><span><span>        </span>}</span></span></span></p> <p><span><span>};</span></span></p> <p><span> </span></p> <p><span><span>鍦ㄥ熀紜姹犵殑鍩虹涓婂畾涔変簡涓涓畝鍗曠殑閫氱敤姹?/span></span></p> <p><span><span>class CMemoryPool</span></span></p> <p><span><span>{</span></span></p> <p><span><span>private:</span></span></p> <p><span><span><span><span>        </span>CBufferPool bp[N];</span></span></span></p> <p><span><span>…</span></span></p> <p><span><span>};</span></span></p> <p><span><span>閫氱敤姹犳槸鐢?/span><span><span>N</span></span><span>涓笉鍚屽ぇ灝忕殑鍩虹姹犵粍鎴愮殑錛屽垎閰嶇殑鏃跺欏渾鏁村埌鍚堥傜殑鐩歌繎鍩虹姹犲茍鐢卞熀紜姹犲垎閰嶃?/span></span></p> <p><span><span>鏈鍚庤繕鎻愪緵浜嗕竴涓唴瀛樺垎閰嶉傞厤鍣ㄧ被錛屼粠璇ョ被媧劇敓鐨勭被閮芥敮鎸佸唴瀛樻睜鍒嗛厤銆?/span></span></p> <p><span><span>class t_alloc</span></span></p> <p><span><span>{</span></span></p> <p><span><span>public:</span></span></p> <p><span><span><span><span>        </span>static void *operator new(size_t size)</span></span></span></p> <p><span><span><span><span>        </span>{</span></span></span></p> <p><span><span><span><span>                </span>return CMemoryPool::instance().newobj(size);</span></span></span></p> <p><span><span><span><span>        </span>}</span></span></span></p> <p><span><span><span><span>        </span>static void operator delete(void *p, size_t size)</span></span></span></p> <p><span><span><span><span>        </span>{</span></span></span></p> <p><span><span><span><span>                </span>CMemoryPool::instance().delobj(p, size);</span></span></span></p> <p><span><span><span><span>        </span>}</span></span></span></p> <p><span><span>};</span></span></p> <p><span><span>鏍規嵁嫻嬭瘯</span><span><span>CMempool</span></span><span>鍒嗛厤閫熷害姣?/span><span><span>CObjpool<></span></span><span>紼嶅井鎱竴鐐圭偣錛屾墍浠ユ垜鍦ㄧ敤鐨勬椂鍊欏氨鐩存帴鐢?/span><span><span>t_alloc</span></span><span>綾繪淳鐢燂紝鑰屼笉鏄敤瀵硅薄姹狅紝榪欐槸涓鏍奸棶棰橈紝涔熻鏈夊緢澶氫漢鍠滄鐢ㄦ洿楂樻晥涓鐐圭殑</span><span><span>objpool</span></span><span>鏂瑰紡錛屼絾榪欎釜騫朵笉澶х銆?/span></span></p> <p><span> </span></p> <p><span><span>鍦ㄧ綉緇滄ā鍧椾腑</span><span><span>OVERLAPPED</span></span><span>媧劇敓綾誨氨瑕佺敤姹犺繘琛屽垎閰嶏紝榪樻湁</span><span><span>CIocpClient</span></span><span>涔熻鐢ㄦ睜鍒嗛厤錛屽啀灝辨槸</span><span><span>CBlockBuffer</span></span><span>涔熸槸浠庢睜鍒嗛厤鐨勩?/span></span></p> <p><span><span>濡備笅瀹氫箟錛?/span></span></p> <p><span><span>struct IOCP_ACCEPTDATA : public IOCP_RECVDATA, public t_alloc</span></span></p> <p><span><span>class CIocpClient : public t_alloc</span></span></p> <p><span> </span></p> <p><strong><span><span>浜屻佹暟鎹紦鍐插尯銆?/span></span></strong></p> <p><span><span>鏁版嵁緙撳啿鍖?/span><span><span>CBlockBuffer</span></span><span>涓虹幆褰紝澶у皬涓嶅浐瀹氾紝闅忎究鍒嗛厤澶氬皯錛屼富瑕佹湁浠ヤ笅鍑犱釜鍏冪礌錛?/span></span></p> <p><span><span><span>Char *pbase;<span>           </span>//</span></span><span>鐜艦棣栭儴</span></span></p> <p><span><span><span>Char *pread;<span>           </span>//</span></span><span>褰撳墠璇繪寚閽?/span></span></p> <p><span><span><span>Char *pwrite;<span>          </span>//</span></span><span>褰撳墠鍐欐寚閽?/span></span></p> <p><span><span><span>Int nCapacity;<span>         </span>//</span></span><span>緙撳啿鍖哄ぇ灝?/span></span></p> <p><span><span><span>Long nRef;<span>              </span>//</span></span><span>鍏寵仈璁℃暟鍣?/span></span></p> <p><span><span>鐢ㄨ繖縐嶅艦寮忕鐞嗙紦鍐插尯鏈夊緢澶氬ソ澶勶紝鍙戦佹暟鎹殑鏃跺欏鏋滃彧鍙戦佷簡閮ㄥ垎鏁版嵁鍙淇敼</span><span><span>pread</span></span><span>鎸囬拡鍗沖彲錛屼笉鐢ㄧЩ鍔ㄦ暟鎹紝鎺ユ敹鏁版嵁騫跺鐞嗙殑鏃跺欏鏋滃彧澶勭悊浜嗛儴鍒嗘暟鎹篃鍙淇敼</span><span><span>pread</span></span><span>鎸囬拡鍗沖彲錛屾湁鏂版暟鎹埌杈懼悗鐩存帴鍐欏埌</span><span><span>pwrite</span></span><span>騫朵慨鏀?/span><span><span>pwrite</span></span><span>鎸囬拡錛屼笉鐢ㄥ嬈℃嫹璐濇暟鎹?/span><span><span>nRef</span></span><span>鍏寵仈璁℃暟榪樺彲澶勭悊涓涓寘鍙戠粰</span><span><span>N</span></span><span>涓漢鐨勯棶棰橈紝濡傛灉瑕佺粰</span><span><span>N</span></span><span>涓漢鍙戦佺浉鍚岀殑鍖咃紝鍙鍒嗛厤涓涓紦鍐插尯錛屽茍璁劇疆</span><span><span>nRef</span></span><span>涓?/span><span><span>N</span></span><span>灝卞彲浠ヤ笉鐢ㄥ鍒?/span><span><span>N</span></span><span>浠姐?/span></span></p> <p><span> </span></p> <p><strong><span><span>涓夈佹敹鍙戠紦鍐插尯綆$悊</span></span></strong></p> <p><strong><span><span>鍙戦佺紦鍐插尯</span></span></strong></p> <p><span><span>鎴戞妸</span><span><span>CIocpClient</span></span><span>鐨勫彂閫佹暟鎹璁′負涓涓?/span><span><span>CBlockBuffer </span></span><span>鐨勯槦鍒楋紝濡傛灉闃熷垪鍐呮湁澶氫釜鍒?/span><span><span>WSASend</span></span><span>鐨勬椂鍊欎竴嬈″彂閫佸涓紝濡傛灉鍙湁涓涓垯浠呭彂閫佷竴涓紝</span><span><span>CIocpClient</span></span><span>鍙戦佸嚱鏁版彁渚涗簡涓や釜錛屽垎鍒槸錛?/span></span></p> <p><span><span>Bool SendData(char *pdata, int len);</span></span></p> <p><span><span>Bool SendData(CBlockBuffer *pbuffer);</span></span></p> <p><span><span>絎竴涓嚱鏁頒細媯嫻嬪彂閫侀摼鐨勬渶鍚庝竴涓暟鎹潡鑳藉惁瀹圭撼鍙戦佹暟鎹紝濡傛灉鑳藉鍒跺埌鏈鍚庝竴涓潡錛屽鏋滀笉鑳藉垯鍒嗛厤涓涓?/span><span><span>CBlockBuffer</span></span><span>鎸傚埌鍙戦侀摼鏈鍚庨潰錛屽綋鐒惰繖涓噷闈㈣澶勭悊鍚屾銆?/span></span></p> <p><span> </span></p> <p><strong><span><span>鎺ユ敹緙撳啿鍖?/span></span></strong></p> <p><span><span>鎺ユ敹綆$悊鏄瘮杈冪畝鍗曠殑錛屽彧鏈変竴涓?/span><span><span>CBlockBuffer</span></span><span>錛?/span><span><span>WSARecv</span></span><span>鐨勬椂鍊欑洿鎺ユ寚鍚?/span><span><span>CBlockBuffer->pwrite</span></span><span>錛屾墍浠ュ鏋滃潡澶у皬鍚堥傜殑璇濆熀鏈笂鏄笉鐢ㄦ嫾鍖呯殑錛屽鏋滀竴嬈℃病鏈夋敹鍒頒竴涓畬鏁寸殑鏁版嵁鍖咃紝騫朵笖鍧楄繕鏈夎凍澶熺┖闂村綰沖墿浣欑┖闂達紝閭d箞鍐嶆彁浜や竴涓?/span><span><span>WSARecv</span></span><span>璁╄搗濮嬬紦鍐叉寚鍚?/span><span><span>CBlockBuffer->pwrite</span></span><span>濡傛鍒欐敹鍒頒竴涓畬鏁存暟鎹寘鐨勮繃紼嬮兘涓嶇敤閲嶆柊鎷煎寘錛屾敹鍒頒竴涓畬鏁存暟鎹寘涔嬪悗鍙互璋冪敤铏氬嚱鏁拌涓婂眰榪涜澶勭悊銆?/span></span></p> <p><span><span>鍦?/span><span><span>IocpClient</span></span><span>灞傚叾瀹炴槸涓嶆敮鎸佹暟鎹寘鐨勶紝鍦ㄨ繖涓眰嬈″彧鏈夋祦鐨勬蹇碉紝榪欎釜鍚庨潰浼氫笓闂ㄨ瑙c?/span></span></p> <p><span> </span></p> <p><span><strong><span>鍥涖?/span><span><span>IocpServer</span></span></strong><strong><span>鐨勬帴鍏ラ儴鍒嗙鐞?/span></strong></span></p> <p><span><span>鎴戞妸</span><span><span>IocpServer</span></span><span>璁捐涓哄彲浠ユ敮鎸佹墦寮澶氫釜鐩戝惉绔彛錛屽姣忎釜鐩戝惉绔彛鎺ュ叆鐢ㄦ埛鍚庤皟鐢?/span><span><span>IocpServer</span></span><span>鐨勮櫄鍑芥暟鍒嗛厤瀹㈡埛绔細</span></span></p> <p><span><span><span><span>        </span>virtual CIocpClient *CreateNewClient(int nServerPort)</span></span></span></p> <p><span><span>鍒嗛厤瀹㈡埛绔箣鍚庝細璋冪敤</span><span><span>IocpClient</span></span><span>鐨勫嚱鏁?/span><span><span><span> </span>virtual void OnInitialize();</span></span><span>鍒嗛厤鍐呴儴鎺ユ敹鍜屽彂閫佺紦鍐插尯錛岃繖鏍峰氨鍙互鏍規嵁鏉ヨ嚜涓嶅悓鐩戝惉绔彛鐨勫鎴風鍒嗛厤涓嶅悓鐨勭紦鍐插尯鍜屽叾浠栬祫婧愩?/span></span></p> <p><span> </span></p> <p><span><span><span>Accept</span></span><span>鍏跺疄鏄釜鍙互鏈夊緢澶氶夋嫨鐨勶紝鏈綆鍗曠殑鍋氭硶鍙互鐢ㄤ竴涓嚎紼?/span><span><span>+accept</span></span><span>錛屽綋鐒惰繖涓笉鏄珮鏁堢殑錛屼篃鍙互閲囩敤澶氫釜綰跨▼鐨勯瀵艱?/span><span><span>-</span></span><span>榪介殢鑰呮ā寮?/span><span><span>+accept</span></span><span>瀹炵幇錛岃繕鍙互鏄竴涓嚎紼?/span><span><span>+WSAAccept</span></span><span>錛屾垨鑰呭涓嚎紼嬬殑棰嗗鑰?/span><span><span>-</span></span><span>榪介殢鑰呮ā寮?/span><span><span>+WSAAccept</span></span><span>妯″紡錛屼篃鍙互閲囩敤</span><span><span>AcceptEx</span></span><span>妯″紡錛屾垜鏄噰鐢?/span><span><span>AcceptEx</span></span><span>妯″紡鍋氱殑錛屽仛娉曟槸鏈夋帴鍏ュ悗鎶曢掍竴涓?/span><span><span>AcceptEx</span></span><span>錛屾帴鍏ュ悗閲嶅鍒╃敤姝?/span><span><span>OVERLAPPED</span></span><span>鍐嶆姇閫掞紝榪欐牱鍗充嬌綆$悊澶ч噺榪炴帴涔熷彧鏈夎搗鍒濈殑鍑犲崄涓繛鎺ヤ細鍒嗛厤</span><span><span> OVERLAPPED</span></span><span>鍚庨潰鐨勯兘鏄噸澶嶅埄鐢ㄥ墠闈㈠垎閰嶇殑緇撴瀯錛屼笉浼氬鑷村啀搴﹀垎閰嶃?/span></span></p> <p><span> </span></p> <p><span><span><span>IocpServer</span></span><span>榪樻彁渚涗簡涓涓櫄鍑芥暟</span></span></p> <p><span><span><span><span>        </span>virtual bool CanAccept(const char *pip, int port){return true;}</span></span></span></p> <p><span><span>鏉ョ鐞嗘槸鍚︽帴鍏ユ煇涓?/span><span><span>ip:port </span></span><span>鐨勮繛鎺ワ紝濡傛灉涓嶆帴鍏ョ洿鎺ヤ細鍏抽棴璇ヨ繛鎺ュ茍閲嶅鍒╃敤姝ゅ墠鍒嗛厤鐨?/span><span><span>WSASocket</span></span><span>銆?/span></span></p> <p><span> </span></p> <p><strong><span><span>浜斻佽祫婧愮鐞?/span></span></strong></p> <p><span><span><span>Iocp</span></span><span>緗戠粶妯″潡鏈闅劇殑灝辨槸榪欎釜浜嗭紝浠涔堟椂鍊欏鎴風鍏抽棴鎴栨湇鍔″櫒涓誨姩鍏抽棴鏌愪釜榪炴帴騫舵敹鍥炶祫婧愶紝榪欐槸鏈闅懼鐞嗙殑闂錛屾垜灝濊瘯浜嗗嚑縐嶅仛娉曪紝鏈鍚庢槸閲囩敤璁℃暟鍣ㄧ鐞嗘ā寮忥紝鍏蜂綋鍋氭硶鏄繖鏍風殑錛?/span></span></p> <p><span><span><span>CIocpClient</span></span><span>鏈?/span><span><span>2</span></span><span>涓鏁板彉閲?/span></span></p> <p><span><span><span><span>        </span>volatile long m_nSending;<span>              </span>//</span></span><span>鏄惁姝e彂閫佷腑</span></span></p> <p><span><span><span><span>        </span>volatile long m_nRef;<span>                     </span>//</span></span><span>鍙戦佹帴鏀跺叧鑱斿瓧</span></span></p> <p><span><span><span>m_nSending</span></span><span>琛ㄧず鏄惁鏈夋暟鎹凡</span><span><span>WSASend</span></span><span>涓病鏈夎繑鍥?/span></span></p> <p><span><span><span>m_nRef</span></span><span>琛ㄧず</span><span><span>WSASend</span></span><span>鍜?/span><span><span>WSARecv</span></span><span>鏈夋晥璋冪敤鏈繑鍥炲拰</span></span></p> <p><span><span>鍦ㄥ悎閫傜殑浣嶇疆璋冪敤</span></span></p> <p><span><span><span><span>        </span>inline void AddRef(const char *psource);</span></span></span></p> <p><span><span><span><span>        </span>inline void Release(const char *psource);</span></span></span></p> <p><span><span>澧炲紩鐢ㄨ鏁板拰閲婃斁寮曠敤璁℃暟</span></span></p> <p><span><span><span><span>        </span>if(InterlockedDecrement(&m_nRef)<=0)</span></span></span></p> <p><span><span><span><span>        </span>{</span></span></span></p> <p><span><span><span><span>                </span>//glog.print("iocpclient %p Release %s ref %d\r\n", this, psource, m_nRef);</span></span></span></p> <p><span><span><span><span>                </span>m_server->DelClient(this);</span></span></span></p> <p><span><span><span><span>        </span>}</span></span></span></p> <p><span><span>褰撳紩鐢ㄨ鏁板噺灝戝埌</span><span><span>0</span></span><span>鐨勬椂鍊欏垹闄ゅ鎴風錛堝叾瀹炴槸灝嗗唴瀛樿繑鍥炵粰鍐呭瓨姹狅級銆?/span></span></p> <p><span> </span></p> <p><strong><span><span>鍏侀攣浣跨敤</span></span></strong></p> <p><span><span>閿佺殑浣跨敤鑷沖叧閲嶈錛屽浜嗘晥鐜囦綆涓嬶紝灝戜簡涓嶈兘瑙e喅闂錛岀敤澶氬皯涓攣鍦ㄤ粈涔堢矑搴︿笂鐢ㄩ攣涔熸槸榪欎釜妯″潡鐨勫叧閿墍鍦ㄣ?/span></span></p> <p><span><span><span>IocpClient</span></span><span>鏈変竴涓攣</span><span><span><span>      </span>DECLARE_SIGNEDLOCK_NAME(send);<span>        </span>//</span></span><span>鍙戦佸悓姝ラ攣</span></span></p> <p><span><span>榪欎釜閿佹槸鐢ㄦ潵鎺у埗鍙戦佹暟鎹摼綆$悊鐨勶紝璇ラ攣鍜屽墠闈㈡彁鍒扮殑</span><span><span>volatile long m_nSending;</span></span><span>鍏卞悓閰嶅悎綆$悊鍙戦佹暟鎹摼銆?/span></span></p> <p><span><span>鍙兘鏈変漢浼氳</span><span><span>recv</span></span><span>鎬庝箞娌℃湁閿佸悓姝ワ紝鏄殑錛?/span><span><span>recv</span></span><span>鐨勭‘娌℃湁閿侊紝</span><span><span>recv</span></span><span>涓嶇敤閿佹槸涓轟簡鏈澶ч檺搴︽彁楂樻晥鐜囷紝濡傛灉鍜屽彂閫佸叡涓涓攣鍒欏緢澶氶棶棰樺彲浠ョ畝鍖栵紝浣嗘病鏈夊厖鍒嗗彂鎸?/span><span><span>iocp</span></span><span>鐨勬晥鐜囥?/span><span><span>Recv</span></span><span>鎺ユ敹鏁版嵁鍚庡氨璋冪敤</span><span><span>OnReceive</span></span><span>铏氬嚱鏁拌繘琛屽鐞嗐傚彲浠ョ洿鎺?/span><span><span>io</span></span><span>綰跨▼鍐呴儴澶勭悊錛屼篃鍙互鎻愪氦鍒版煇涓槦鍒楃敱鐙珛鐨勯昏緫綰跨▼澶勭悊銆傚叿浣撳浣曚嬌鐢ㄥ畬鍏ㄧ敱浣跨敤鑰呭喅瀹氾紝搴曞眰涓嶅仛浠諱綍闄愬埗銆?/span></span></p> <p><span> </span></p> <p><strong><span><span>涓冦佹湇鍔″櫒瀹氭椂鍣ㄧ鐞?/span></span></strong></p> <p><span><span>鏈嶅姟鍣ㄥ畾涔変簡濡備笅瀹氭椂鍣ㄥ嚱鏁幫紝鍒╃敤緋葷粺鎻愪緵鐨勬椂閽熼槦鍒楄繘琛岀鐞嗐?/span></span></p> <p><span><span><span><span>        </span>bool AddTimer(int uniqueid, DWORD dueTime, DWORD period, ULONG nflags=WT_EXECUTEINTIMERTHREAD);</span></span></span></p> <p><span><span><span><span>        </span>bool ChangeTimer(int uniqueid, DWORD dueTime, DWORD period);</span></span></span></p> <p><span><span><span><span>        </span>bool DelTimer(int uniqueid);</span></span></span></p> <p><span><span><span><span>        </span>//</span></span><span>鑾峰彇</span><span><span>Timers</span></span><span>鏁伴噺</span></span></p> <p><span><span><span><span>        </span>int GetTimerCount() const;</span></span></span></p> <p><span><span><span><span>        </span>TimerIterator GetFirstTimerIterator();</span></span></span></p> <p><span><span><span><span>        </span>TimerNode *GetNextTimer(TimerIterator &it);</span></span></span></p> <p><span><span><span><span>        </span>bool IsValidTimer(TimerIterator it)</span></span></span></p> <p><span><span>璁捐鎬濊礬鏄粰姣忎釜瀹氭椂鍣ㄥ垎閰嶄竴涓嫭绔嬬殑</span><span><span>id</span></span><span>錛屾牴鎹?/span><span><span>id</span></span><span>鍙慨鏀瑰畾鏃跺櫒鐨勯嬈¤Е鍙戞椂闂村拰鍚庣畫姣忔瑙﹀彂鏃墮棿錛屽彲鏍規嵁</span><span><span>id</span></span><span>鍒犻櫎瀹氭椂鍣紝涔熷彲閬嶅巻瀹氭椂鍣ㄣ傚畾鏃跺櫒鏃墮棿鍗曚綅涓烘縐掋?/span></span></p> <p><span> </span></p> <p><strong><span><span>鍏佹ā鍧楃被緇撴瀯</span></span></strong></p> <p><span><span>妯″潡涓渶閲嶈鐨勫氨鏄袱涓被</span><span><span>CIocpClient</span></span><span>鍜?/span><span><span>CIocpServer</span></span><span>錛屽叾浠栨湁鍑犱釜綾諱粠榪欎袱涓被媧劇敓錛屽浘紺哄涓嬶細</span></span></p> <table border=1 cellSpacing=0 cellPadding=0> <tbody> <tr> <td vAlign=top width=325> <p> </p> <p><span><span><img alt="" src="http://hi.csdn.net/attachment/201010/2/0_12860366862P0q.gif">鍥捐〃</span><span> <span><span>1</span></span></span></span></p> </td> <td vAlign=top width=325> <p> </p> <p><span><span><img alt="" src="http://hi.csdn.net/attachment/201010/2/0_12860366934gcR.gif">鍥捐〃</span><span> <span><span>2</span></span></span></span></p> </td> </tr> </tbody> </table> <p><span> </span></p> <p><span><span><span>CIocpClient</span></span><span>鏄畬鍏ㄦ祦寮忕殑錛屾病鏈夊寘姒傚康銆?/span><span><span>CIocpMsgClient</span></span><span>浠?/span><span><span>CIocpClient</span></span><span>媧劇敓錛屽唴閮ㄦ敮鎸佸寘姒傚康錛?/span></span></p> <p><span><span>class CIocpMsgClient : public CIocpClient</span></span></p> <p><span><span>{</span></span></p> <p><span><span>…</span></span></p> <p><span><span><span><span>        </span>virtual void OnDataTooLong(){};</span></span></span></p> <p><span><span><span><span>        </span>virtual void OnMsg(PKHEAD *ph){};</span></span></span></p> <p><span> </span></p> <p><span><span><span><span>        </span>bool SendMsg(WORD mtype, WORD stype, const char *pdata, int length);</span></span></span></p> <p><span><span>…</span></span></p> <p><span><span>};</span></span></p> <p><span> </span></p> <p><span><span>template <class TYPE></span></span></p> <p><span><span>class CIocpMsgClientT : public CIocpMsgClient</span></span></p> <p><span><span>{</span></span></p> <p><span><span>…</span></span></p> <p><span><span><span><span>        </span>void AddMsg(DWORD id, CBFN pfn);</span></span></span></p> <p><span><span><span><span>        </span>BOOL DelMsg(DWORD id);</span></span></span></p> <p><span><span>…</span></span></p> <p><span><span>};</span></span></p> <p><span><span><span>CIocpMsgClientT</span></span><span>妯℃澘綾繪敮鎸佸唴宓屽叆寮忓畾涔夛紝濡傚湪</span></span></p> <p><span><span><span>CMyDoc</span></span><span>涓彲榪欐牱瀹氫箟</span></span></p> <p><span><span>CIocpMsgClientT<CMyDoc> client;</span></span></p> <p><span><span>鍚庨潰鍙互璋冪敤</span><span><span>client.AddMsg(UMSG_LOGIN, OnLogin);</span></span><span>鍏寵仈涓涓被鎴愬憳鍑芥暟浣滀負娑堟伅澶勭悊鍑芥暟錛屼嬌鐢ㄥ緢鏂逛究銆?/span></span></p> <p><span> </span></p> <p><span><span><span>CIocpServerT</span></span><span>瀹氫箟寰堢畝鍗曪紝浠?/span><span><span>CIocpServer</span></span><span>媧劇敓錛岄噸杞戒簡</span><span><span>CreateNewClient</span></span><span>鍑芥暟</span></span></p> <p><span><span>template <class TClient></span></span></p> <p><span><span>class CIocpServerT : public CIocpServer</span></span></p> <p><span><span>{</span></span></p> <p><span><span>public:</span></span></p> <p><span><span><span><span>        </span>//</span></span><span>濡傛灉</span><span><span>CIocpClient</span></span><span>媧劇敓浜嗗垯涔熼渶瑕侀噸杞戒笅闈㈢殑鍑芥暟錛岃繖閲屽彲浠ユ牴鎹?/span><span><span>nServerPort</span></span><span>鍒嗛厤涓嶅悓鐨?/span><span><span>CIocpClient</span></span><span>媧劇敓綾?/span></span></p> <p><span><span><span><span>        </span>virtual CIocpClient *CreateNewClient(int nServerPort)</span></span></span></p> <p><span><span><span><span>        </span>{</span></span></span></p> <p><span><span><span><span>                </span>CIocpClient *pclient = new TClient;</span></span></span></p> <p><span><span>…</span></span></p> <p><span><span><span><span>                </span>return pclient;</span></span></span></p> <p><span><span><span><span>        </span>}</span></span></span></p> <p><span><span>};</span></span></p> <p><span> </span></p> <p><strong><span><span>鍏佸簲鐢ㄤ婦渚?/span></span></strong></p> <p><span> </span></p> <p><span><span>class CMyClient : public CIocpMsgClient</span></span></p> <p><span><span>{</span></span></p> <p><span><span>public:</span></span></p> <p><span><span><span><span>        </span>CMyClient() : CIocpMsgClient()</span></span></span></p> <p><span><span><span><span>        </span>{</span></span></span></p> <p><span><span><span><span>        </span>}</span></span></span></p> <p><span><span><span><span>        </span>virtual ~CMyClient()</span></span></span></p> <p><span><span>{</span></span></p> <p><span><span>}</span></span></p> <p><span><span><span><span>        </span>virtual void OnConnect()</span></span></span></p> <p><span><span>{</span></span></p> <p><span><span><span>Printf(“</span></span><span>鐢ㄦ埛榪炴帴</span><span><span>%s:%d</span></span><span>榪炴帴鍒版湇鍔″櫒</span><span><span>\r\n”, GetPeerAddr().ip(),GetPeerAddr().port());</span></span></span></p> <p><span><span>}</span></span></p> <p><span><span><span><span>        </span>virtual void OnClose()</span></span></span></p> <p><span><span>{</span></span></p> <p><span><span><span>Printf(“</span></span><span>鐢ㄦ埛</span><span><span>%s:%d</span></span><span>鍏抽棴榪炴帴</span><span><span>\r\n”, GetPeerAddr().ip(),GetPeerAddr().port());</span></span></span></p> <p><span><span>}</span></span></p> <p><span><span><span><span>        </span>virtual void OnMsg(PKHEAD *phead)</span></span></span></p> <p><span><span>{</span></span></p> <p><span><span><span><span>        </span>SendData((const char *)phead, phead->len+PKHEADLEN);</span></span></span></p> <p><span><span>}</span></span></p> <p><span><span><span><span>        </span>virtual void OnSend(DWORD dwbyte)</span></span></span></p> <p><span><span>{</span></span></p> <p><span><span><span>Printf(“</span></span><span>鎴愬姛鍙戦?/span><span><span>%d</span></span><span>涓瓧絎?/span><span><span>\r\n”, dwbyte);</span></span></span></p> <p><span><span>}</span></span></p> <p><span><span><span><span>        </span>virtual void OnInitialize()</span></span></span></p> <p><span><span>{</span></span></p> <p><span><span><span><span>        </span>m_sendbuf = newbuf(1024);</span></span></span></p> <p><span><span><span><span>        </span>m_recvbuf = newbuf(4096);</span></span></span></p> <p><span><span>}</span></span></p> <p><span> </span></p> <p><span><span><span><span>        </span>friend class CMyServer;</span></span></span></p> <p><span> </span></p> <p><span><span>};</span></span></p> <p><span> </span></p> <p><span><span>class CMyServer : public CIocpServer</span></span></p> <p><span><span>{</span></span></p> <p><span><span>public:</span></span></p> <p><span><span><span><span>        </span>CMyServer() : CIocpServer</span></span></span></p> <p><span><span><span><span>        </span>{</span></span></span></p> <p><span><span><span><span>        </span>}</span></span></span></p> <p><span> </span></p> <p><span><span><span><span>        </span>virtual void OnConnect(CIocpClient *pclient)</span></span></span></p> <p><span><span>{</span></span></p> <p><span><span><span><span>                </span>printf("%p : %d </span></span><span>榪滅鐢ㄦ埛</span><span><span>%s:%d</span></span><span>榪炴帴鍒版湰鏈嶅姟鍣?/span><span><span>.\r\n", pclient, pclient->m_socket, </span></span></span></p> <p><span><span><span><span>                        </span>pclient->GetPeerAddr().ip(), pclient->GetPeerAddr().port());</span></span></span></p> <p><span><span>}</span></span></p> <p><span><span><span><span>        </span>virtual void OnClose(CIocpClient *pclient)</span></span></span></p> <p><span><span>{</span></span></p> <p><span><span><span><span>        </span>printf("%p : %d </span></span><span>榪滅鐢ㄦ埛</span><span><span>%s:%d</span></span><span>閫鍑?/span><span><span>.\r\n", pclient, pclient->m_socket, </span></span></span></p> <p><span><span><span><span>                        </span>pclient->GetPeerAddr().ip(), pclient->GetPeerAddr().port());</span></span></span></p> <p><span><span>}</span></span></p> <p><span><span><span><span>        </span>virtual void OnTimer(int uniqueid)</span></span></span></p> <p><span><span>{</span></span></p> <p><span><span>If(uniqueid == 10)</span></span></p> <p><span><span>{</span></span></p> <p><span><span>}</span></span></p> <p><span><span>Else if(uniqueid == 60)</span></span></p> <p><span><span>{</span></span></p> <p><span><span>}</span></span></p> <p><span><span>}</span></span></p> <p><span><span><span>//</span></span><span>榪欓噷鍙互鏍規嵁</span><span><span>nServerPort</span></span><span>鍒嗛厤涓嶅悓鐨?/span><span><span>CIocpClient</span></span><span>媧劇敓綾?/span></span></p> <p><span><span><span><span>        </span>virtual CIocpClient *CreateNewClient(int nServerPort)</span></span></span></p> <p><span><span><span><span>        </span>{</span></span></span></p> <p><span><span><span><span>        </span>//<span>      </span>If(nServerPort == ?)</span></span></span></p> <p><span><span>//<span>              </span>…</span></span></p> <p><span><span><span><span>                </span>CIocpClient *pclient = new CMyClient;</span></span></span></p> <p><span><span>…</span></span></p> <p><span><span><span><span>                </span>return pclient;</span></span></span></p> <p><span><span><span><span>        </span>}</span></span></span></p> <p><span> </span></p> <p><span><span>};</span></span></p> <p><span> </span></p> <p><span><span>Int main(int argc, char *argv[])</span></span></p> <p><span><span>{</span></span></p> <p><span><span><span><span>        </span>CMyServer server;</span></span></span></p> <p><span> </span></p> <p><span><span><span><span>        </span>server.AddTimer(60, 10000, 60000);</span></span></span></p> <p><span><span><span><span>        </span>server.AddTimer(10, 10000, 60000);</span></span></span></p> <p><span> </span></p> <p><span><span><span><span>        </span>//</span></span><span>絎簩涓弬鏁頒負</span><span><span>0</span></span><span>琛ㄧず浣跨敤榛樿</span><span><span>cpu*2</span></span><span>涓?/span><span><span>io</span></span><span>綰跨▼錛?/span><span><span>>0</span></span><span>琛ㄧず浣跨敤璇ユ暟鐩殑</span><span><span>io</span></span><span>綰跨▼銆?/span></span></p> <p><span><span><span>//</span></span><span>絎笁涓弬鏁頒負</span><span><span>0</span></span><span>琛ㄧず浣跨敤榛樿</span><span><span>cpu*4</span></span><span>涓昏緫綰跨▼錛屽鏋滀負</span><span><span>-1</span></span><span>琛ㄧず涓嶄嬌鐢ㄩ昏緫綰跨▼錛岄昏緫鍦?/span><span><span>io</span></span><span>綰跨▼鍐呰綆椼?/span><span><span>>0</span></span><span>鍒欒〃紺轟嬌鐢ㄨ鏁扮洰鐨勯昏緫綰跨▼</span></span></p> <p><span><span><span><span>        </span>server.StartServer("1000;2000;4000", 0, 0);</span></span></span></p> <p><span><span>}</span></span></p> <p><span> </span></p> <p><span><span>浠庣ず渚嬪彲鐪嬪嚭錛屽浣跨敤璇ョ綉緇滄ā鍧楃殑浜烘潵璇撮潪甯哥畝鍗曪紝鍙媧劇敓涓や釜綾伙紝闆嗕腑綺懼姏澶勭悊娑堟伅鍑芥暟鍗沖彲錛屽叾浠栧唴瀹瑰唴閮ㄥ叏閮ㄥ寘瑁呬簡銆?/span></span></p> <p><span> </span></p> <p><strong><span><span>涔濄佸悗璁?/span></span></strong></p> <p><span><span>鎴戠爺絀?/span><span><span>iocp</span></span><span>澶ф鍦?/span><span><span>2005</span></span><span>騫村垵錛屽墠涓涓増鏈殑緗戠粶妯″潡鏄敤澶氱嚎紼?/span><span><span>+</span></span><span>寮傛浜嬩歡鏉ュ仛鐨勶紝</span><span><span>iocp</span></span><span>緗戠粶妯″潡鍩烘湰鎴愬瀷鍦?/span><span><span>2005</span></span><span>騫翠腑錛屽悗鏉ュ張鎸佺畫榪涜浜嗕竴浜涙敼榪涳紝</span><span><span>2005</span></span><span>搴曡繘鍏ョǔ瀹氭湡錛?/span><span><span>2006</span></span><span>騫村張鍋氫簡涓浜涘ぇ鐨勬敼鍔紝鍚庢潵鍙堟寔緇繘琛屼簡涓浜涘皬鐨勬敼榪涳紝鐩墠璇ユā鍧椾綔涓烘湇鍔$▼搴忔鏋跺凡緇忓湪寰堝欏圭洰涓ǔ瀹氳繍琛屼簡</span><span><span>1</span></span><span>騫村崐宸﹀彸鐨勬椂闂淬傚湪姝ゆ劅璋㈠ぇ瀹濄?/span><span><span>Chost Cheng</span></span><span>銆?/span><span><span>Sunway</span></span><span>絳変紬澶氱綉鍙嬶紝鏄綘浠殑璁ㄨ緇欎簡鎴戠伒鎰熷拰鎸佺畫鏀硅繘鐨勫姩鍔涳紝涔熸槸浣犱滑鐨勮璁虹粰浜嗘垜鎶婅繖浜涘啓鍑烘潵鐨勫喅蹇冦傝嫢姝ゆ枃鑳界粰鍚庢潵鑰呬滑涓鐐圭偣鍚ず鎴戝皢鐢氭劅嬈f叞錛岃嫢鏈夐敊璇榪庢壒璇勬寚姝c?/span></span></p> <p><span> </span></p> <p><span><span>oldworm</span></span></p> <p><span><a href="mailto:oldworm@21cn.com"><span>oldworm@21cn.com</span></a></span></p> <p><span><span>2007.9.24</span></span></p> <img src ="http://m.shnenglu.com/oldworm/aggbug/128473.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/oldworm/" target="_blank">琚佹枌</a> 2010-10-03 14:25 <a href="http://m.shnenglu.com/oldworm/archive/2010/10/03/128473.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>IT琛屼笟鑳借鐨勪漢澶鑳藉仛鐨勪漢澶皯http://m.shnenglu.com/oldworm/archive/2010/10/03/128472.html琚佹枌琚佹枌Sun, 03 Oct 2010 06:24:00 GMThttp://m.shnenglu.com/oldworm/archive/2010/10/03/128472.htmlhttp://m.shnenglu.com/oldworm/comments/128472.htmlhttp://m.shnenglu.com/oldworm/archive/2010/10/03/128472.html#Feedback2http://m.shnenglu.com/oldworm/comments/commentRss/128472.htmlhttp://m.shnenglu.com/oldworm/services/trackbacks/128472.htmlIt琛屼笟浠庝笟鍗佸嚑騫達紝铏界劧鎺ヨЕ鐨勪漢騫朵笉澶氾紝浣嗙畻涓婄綉緇滀笂鏈夌偣浜ゅ線鐨勪漢錛屼篃涓嶇畻澶皯錛岄槄璇昏繃鏃犳暟浠g爜錛屽緢瀹規槗寰楀嚭榪欐牱鐨勬劅鎮燂紝鍥藉唴it琛屼笟鑳借鐨勪漢澶錛岃兘鍋氱殑浜哄お灝戯紝鑳借澶ф剰灝辨槸鑳借浼氶亾錛岃璧鋒潵澶村ご鏄亾錛屼粠鏋舵瀯鍒頒綋緋誨埌妯″潡鍒版帴鍙i兘鑳借寰楀緢涓撲笟錛屼絾瀹炴柦璧鋒潵灝變笉琛岋紝涓嶄絾鏋舵瀯鍋氫笉濂斤紝鎺ュ彛瀹氫箟涓嶆竻錛屽氨榪炲皬灝忔ā鍧椾篃鏈寰楀彲鎼炲畾錛岃繖鏍風殑浜哄疄鍦ㄦ槸澶錛屼箣鍓嶄竴鐩翠互涓轟竴涓」鐩粍澶氬嚑涓漢鎬昏兘鍔犲揩鐐歸熷害錛岀幇鍦ㄧ粓浜庢槑鐧斤紝涓涓」鐩粍鍔犲嚑涓笉鍚堥傜殑浜轟笉浣嗕笉鑳藉姞閫熷弽鑰岃闄嶉燂紝鐢氳嚦鐩存帴瀵艱嚧欏圭洰寮鍙戝け鎺с佸け璐ャ傚叧閿ā鍧楀鏋滆涓涓笉縐拌亴鐨勪漢鍘昏礋璐o紝鏈緇堣妯″潡鍙兘闇瑕佽楄垂鏍稿績浜哄憳鏇村鏃墮棿鍘諱慨鏀癸紝鐢氳嚦瑕侀噸鍐欙紝杞誨垯瀵艱嚧欏圭洰寤舵椂錛岄噸鍒欏鑷撮」鐩け璐ャ?/span>

瀹炴柦涓涓垚鍔熺殑it欏圭洰錛堝彧璇存妧鏈笉璇村競鍦猴級錛屾鎷搗鏉ュ氨鏄竴鍙ヨ瘽錛氭壘鍚堥傜殑浜哄仛鍚堥傜殑欏圭洰銆傝璧鋒潵瀹規槗鍋氳搗鏉ラ毦鍟婏紝姣忎釜浜洪兘鏈変粬鐨勯鍩燂紝濡傛灉鎵炬潵涓涓搮闀?/span>a棰嗗煙鐨勮浠栧仛b棰嗗煙鐨勯」鐩篃鏈繀鍋氬緱濂斤紝铏界劧鏈夌殑浜哄涔犺兘鍔涜秴寮猴紝浣嗘誨綊鏄渶瑕佹椂闂寸Н绱粡楠岀殑銆傝榪囧惉璇磋繃寰堝寮鍙戝け璐ョ殑渚嬪瓙錛岃帿涓嶅姝わ紝鏇懼府浜哄浼樺寲涓涓數淇¤璐歸」鐩紝鍘熷疄鏂界殑浜哄彧浼氱敤鏁版嵁搴擄紝鎵鏈夌殑璁$畻鍏ㄧ敤鏁版嵁搴撳疄鐜幫紝閫熷害姣斿叾瀵規墜鎱竴涓暟閲忕駭浠ヤ笂錛屽皢璁$畻闇瑕佺殑鏁版嵁棰勮鍏ュ唴瀛橈紝涔嬪悗鍏ㄥ湪鍐呭瓨閲岄潰鏌ユ壘璁$畻錛岄熷害涓涓嬫彁楂樹簡涓婄櫨鍊嶏紝淇敼鍚庨熷害棰嗗厛鍏跺鎵嬪ソ鍑犲嶏紝鍏跺疄榪欎釜淇敼寰堝鏄擄紝鍙鍑犲ぉ鏃墮棿灝辨悶瀹氫簡錛岃繕鍖呮嫭鐔熸倝浠栦滑鐨勬暟鎹強瑙勫垯銆?/span> 榪樺府鍒漢鐪嬭繃涓涓鐗岀殑欏圭洰錛屽師欏圭洰緇勫崄鍑犱釜浜烘悶浜?/span>1騫村錛屾暣浜?/span>40澶氫竾琛屼唬鐮侊紝緇撴灉bug涓嶆柇錛屼竴鐩翠笉鑳界ǔ瀹氳繍琛岋紝欏圭洰緇勬棤浜鴻兘鎼炲緱瀹氾紝鎴戠湅浜嗕箣鍚庝笅鐨勭粨璁烘槸閲嶅啓錛屼粬浠偦鐪間簡錛岃繕浠ヤ負鏀逛竴涓」鐩殑鏃墮棿鑲畾瑕佸皯錛屾瘯绔熷啓浜嗛偅涔堝浠g爜錛屼粬浠偅浜涘琛屽摢閲岀煡閬擄紝淇敼涓涓紡媧炴棤鏁扮殑宸ョ▼鍝湁閲嶅啓蹇晩錛岃繖鏄吀鍨嬬殑鎵句簡涓緹や笉鎭板綋鐨勪漢鍋氫簡涓涓笉鎭板綋鐨勯」鐩紝鍑犵櫨涓囨姇鍏ユ墦浜嗘按婕傦紝瑕佹槸璁╀竴涓湁鑳藉姏鐨勪漢璁捐鎶婂叧錛屼粬閭f鐗岄」鐩?/span>100涓囪凍澶熷紑鍙戝緱鍑烘潵浜嗐?/span>

鍒氭瘯涓氶偅浼氬仛欏圭洰鐨勬椂鍊欏甫榪囧嚑涓按騫寵緝宸殑鎵嬩笅錛堥兘鏄亢棰嗗鎷涚殑浜猴級錛屼粬浠渶甯歌鐨勮瘽鏄?#8220;浼樺寲”錛屾垜鎶婃煇鏌愬湴鏂?#8220;浼樺寲”浜嗕竴涓嬶紝鍛靛懙錛屽琛岃鍚埌榪欎釜榪樹互涓虹湡鐨勬槸浼樺寲鍛紝鍏跺疄寰堝鏃跺欎粬鍙槸鏀瑰啓浜嗕竴涓嬶紝鏄笉鏄畻浼樺寲榪樺煎緱鍟嗛噺錛屽ぇ澶氭暟鏃跺欓兘綆椾笉涓婁紭鍖栵紝鏈夌殑鏃跺欒繕鏀歸敊寮曞叆浜嗘洿澶?/span>bug銆傚楂樻墜鏉ヨ鏇村枩嬈㈣閲嶆瀯錛屾垜鎶婃煇鏌愭ā鍧楅噸鏂拌璁′簡涓涓嬶紝浠ュ墠妯″潡鏈夊摢浜涚己闄鳳紝閲嶆柊璁捐涓涓嬩箣鍚庤繖浜涚己闄峰氨涓嶅瓨鍦ㄤ簡錛岃繕鏈夋煇鏌愬ソ澶勶紝絳夌瓑錛岄珮鎵嬬潃鐪間簬澶у眬錛屼綆鎵嬪彧鑳界湅鍒頒竴涓皬瑙掕惤錛岄珮鎵嬩紭鍖栧叧閿箣澶勶紝浣庢墜浼樺寲鏃犲叧绱ц涔嬪銆傜湅璞嗙摚緗戞妧鏈彂灞曪紝灝辨槸涓涓笉鏂噸鏋勭殑榪囩▼錛岀湅qq浠?/span>98騫村紑濮嬪埌鐜板湪鐨勮渹楦熷唴鏍革紝澶х殑閲嶆瀯灝?/span>3嬈′簡錛屽畬鍏ㄩ噸鍐?/span>3嬈′簡銆傛渶榪戣繀闆風粓浜庡畼鏂規壙璁?/span>v6寮鍙戝け璐ワ紝鎴戜箣鍓嶅湪緹ら噷琛ㄨ揪榪囨垜鐨勮鐐癸紝鎴戜及璁′粬浠?/span>v6鏄紑鍙戝け璐ヤ簡錛屾墍浠ヤ竴鐩翠互v5欏剁潃錛岀幇鍦ㄧ瓑鍒?/span>v7鍑烘潵緇堜簬鎵胯浜嗭紝榪欑鑷甯傚艱秴100浜跨編鍒鐨勫叕鍙歌繖涔堥暱鏃墮棿鐨勫紑鍙戣繕鑳藉け璐ワ紝灝變笉瑕佽灝忓叕鍙稿皬鍥㈤槦浜嗭紝瑙佸厜姝葷殑欏圭洰寰堝錛屾湭瑙佸厜姝葷殑欏圭洰鏇村銆?/span>

鍥藉唴鐪熸鎳傚緱寮鍙戠殑鑰佹澘寰堝皯錛屽ぇ澶氭暟鑰佹澘瑙夊緱涓涓漢寮5w 10w鐨勬湀钖お楂樹簡錛岃繖涓緟閬囨壘1w鐨勮兘鎵懼ソ鍑犱釜鍛紝鍏跺疄浠栦滑涓嶇煡閬擄紝it琛屼笟涓涓噸瑕佺殑浜鴻兘欏?/span>100涓櫘閫氱殑浜猴紝鐢氳嚦涓嶅彲姣旇緝錛屽洜涓轟竴涓櫘閫氱殑浜哄幓鍋氫竴涓」鐩彲鑳芥牴鏈笉鑳藉畬鎴愶紝鎴愬姛涓?/span>0錛?/span>1錛?/span>0榪欎釜姣斿兼槸鏃犵┓澶у晩錛屽彲鎯滅瓑鑰佹澘浠け璐ヤ簡鍑犱釜欏圭洰涔嬪悗鎵嶈兘鎮熷嚭榪欎釜閬撶悊錛?/span>it欏圭洰鍋氬緱濂藉拰鍋氫笉濂界殑宸埆涓嶆槸宸竴鐐圭殑闂錛岃屾槸1鍜?/span>0鐨勯棶棰樸備織浜烘繪槸蹇欏繖紕岀錛屽ぉ澶╃淮鎶よ嚜宸卞墠涓澶╁埗閫犵殑bug錛岀湅璧鋒潵寰堟暚涓氾紝楂樻墜鎬繪槸鎳掓噿鏁f暎錛屽洜涓?/span>100澶╁悗鍙兘鍑虹幇鐨勯棶棰橀兘宸茬粡浜嗙劧浜庤兏錛屼簬鏄暣澶╃湅璧鋒潵鏃犳墍浜嬩簨鏃訛紝涓嶆噦鐨勮佹澘寰堝彲鑳介潚鐫愪簬鍓嶈呰屾墦鍘嬪悗鑰呫備篃姝e洜涓鴻兘璇寸殑浜哄お澶氾紝鎳傝鐨勮佹澘鍙堝お灝戯紝鎵浠ヤ嬌寰楁暣涓涓氬厖鏂ョ潃嫻簛鍜屾ュ姛榪戝埄錛屽緢澶氬叧閿亴浣嶅叾瀹炲彧鏄釜楣﹂箟鍦ㄩ《鐫錛屾湁鑳藉姏鐨勪漢琚帇鍒訛紝鎮插搥鍟娿傚崈閲岄┈闅炬壘錛屼集涔愭洿闅炬壘鍟娿?/span>



琚佹枌 2010-10-03 14:24 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久激五月天综合精品| 欧美日韩一区二区三区在线视频 | 午夜国产精品视频免费体验区| 亚洲欧洲一区二区三区| 亚洲黄色有码视频| 亚洲午夜精品网| 亚洲综合首页| 亚洲男人的天堂在线观看| 亚洲影院色在线观看免费| 欧美自拍偷拍午夜视频| 免费欧美日韩国产三级电影| 久久综合色综合88| 亚洲欧洲日韩女同| 亚洲精品一二三区| 亚洲一区二区三区视频| 欧美一区二区高清在线观看| 欧美v日韩v国产v| 欧美日韩免费观看一区| 国产精一区二区三区| 精品av久久久久电影| 日韩午夜中文字幕| 欧美一区二区三区婷婷月色| 亚洲国产成人av在线| 亚洲一二三区精品| 免费观看成人| 国产手机视频精品| 99国产精品久久| 欧美在线在线| 一本色道久久综合| 免费看成人av| 国产欧美日本一区视频| 亚洲另类一区二区| 麻豆亚洲精品| 亚洲影视九九影院在线观看| 麻豆91精品| 国产乱码精品一区二区三| 亚洲欧洲一区二区三区久久| 久久国产精品色婷婷| 99精品视频网| 免费在线成人av| 国产一区二区三区免费观看| 亚洲自拍偷拍麻豆| 亚洲伦理自拍| 久久人人97超碰国产公开结果 | 国产情侣久久| 亚洲一区二区三区精品视频| 亚洲国产精品ⅴa在线观看| 欧美一区二区三区视频在线观看 | 欧美理论在线| 在线日本高清免费不卡| 久久久久九九视频| 性做久久久久久久免费看| 国产精品高潮呻吟久久| 一区二区三区日韩欧美| 亚洲激情网站| 欧美国产日产韩国视频| 亚洲欧洲日夜超级视频| 亚洲第一中文字幕| 免费亚洲电影在线| 亚洲精品国产日韩| 亚洲国产精品电影在线观看| 中文日韩在线视频| 欧美一区二视频在线免费观看| 日韩一区二区精品| 欧美日韩一二三区| 亚洲一区综合| 一区二区三区四区五区视频 | 亚洲专区在线视频| 国产精品高清免费在线观看| 亚洲午夜激情网站| 亚洲直播在线一区| 国产亚洲在线| 久久综合五月天婷婷伊人| 欧美影院精品一区| 一区二区三区在线看| 男女精品网站| 欧美精选一区| 亚洲欧美日韩一区二区在线 | 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲欧美在线高清| 国产日产欧美a一级在线| 久久国产精品色婷婷| 久久久久久自在自线| 亚洲人成网站999久久久综合| 欧美激情第4页| 欧美日韩精品三区| 欧美一区二区三区的| 欧美在线高清视频| 亚洲精品美女在线观看| 日韩视频一区二区| 合欧美一区二区三区| 91久久久亚洲精品| 国产欧美一区二区三区在线看蜜臀 | 亚洲精品1234| 一区二区三区高清视频在线观看| 国产欧美欧洲在线观看| 亚洲电影免费观看高清完整版| 欧美精品一区二区视频| 西西裸体人体做爰大胆久久久| 久久久久久久久久久久久女国产乱| 亚洲日本成人| 亚洲欧美国产日韩中文字幕| 亚洲风情在线资源站| 亚洲综合清纯丝袜自拍| 99国产精品视频免费观看| 亚洲欧美中日韩| 欧美xart系列高清| 欧美中文字幕在线视频| 亚洲伦理在线| 久久久www| 欧美一区二区三区免费观看| 欧美成人一区在线| 久久国产主播| 欧美视频一区二区三区…| 欧美大片免费观看| 国产日韩欧美在线| 亚洲网站在线| 亚洲天堂激情| 欧美国产日韩一区二区三区| 久久免费国产精品1| 国产欧美69| 亚洲伊人第一页| 一本大道av伊人久久综合| 久久久国际精品| 久久精品国产综合精品| 欧美色精品在线视频| 亚洲欧洲偷拍精品| 亚洲电影自拍| 久久亚洲综合色| 久久久久天天天天| 国产日韩欧美在线观看| 中文亚洲免费| 亚洲欧美综合另类中字| 欧美日韩性生活视频| 亚洲伦理精品| 亚洲天堂av综合网| 欧美日韩一区二区免费视频| 亚洲国产欧美日韩| 亚洲精品社区| 欧美日产一区二区三区在线观看| 亚洲茄子视频| 99视频一区二区三区| 欧美日韩18| 亚洲午夜电影在线观看| 午夜视黄欧洲亚洲| 国产亚洲欧美日韩日本| 久久久另类综合| 欧美国产三区| 亚洲视频第一页| 国产精品午夜在线观看| 久久黄金**| 亚洲二区在线| 亚洲欧美日韩在线高清直播| 国产精品一级在线| 久久久精品国产免大香伊 | 亚洲理伦电影| 欧美精品videossex性护士| 亚洲精品国产精品国自产观看浪潮| 99精品视频免费观看视频| 国产精品www| 久久国产视频网站| 亚洲第一在线视频| 亚洲一区999| 狠狠88综合久久久久综合网| 久久嫩草精品久久久久| 亚洲免费高清视频| 午夜久久电影网| 亚洲国产成人av在线| 国产精品av免费在线观看| 欧美专区第一页| 亚洲精品久久久久久久久久久久久 | 亚洲欧美在线看| 国内精品久久久久国产盗摄免费观看完整版 | 亚洲精品视频免费在线观看| 亚洲一区二区免费在线| 国产一区视频观看| 欧美区高清在线| 亚洲小说欧美另类社区| 久久精品国产视频| 亚洲美女视频在线免费观看| 国产精品久久夜| 欧美在线播放一区| 日韩视频在线观看一区二区| 欧美在线一区二区| 99国产精品国产精品久久| 国产偷国产偷精品高清尤物| 欧美激情自拍| 久久精品一区四区| 亚洲尤物视频在线| 亚洲韩国一区二区三区| 久久久久一区二区三区| 亚洲深夜影院| 在线成人欧美| 国产精品二区二区三区| 久久国产精彩视频| 亚洲欧美一区二区三区在线| 一区二区成人精品| 欧美激情一区二区在线| 狼狼综合久久久久综合网| 亚洲欧美日韩国产一区|