锘??xml version="1.0" encoding="utf-8" standalone="yes"?>一本大道久久a久久精品综合,欧美日韩精品综合在线,一区二区三区欧美激情http://m.shnenglu.com/xiaoxiaoling/zh-cnSun, 16 Nov 2025 12:28:20 GMTSun, 16 Nov 2025 12:28:20 GMT60灝嗗崥瀹㈡惉鑷矯SDNhttp://m.shnenglu.com/xiaoxiaoling/archive/2019/01/29/216224.htmlclclclclTue, 29 Jan 2019 02:39:00 GMThttp://m.shnenglu.com/xiaoxiaoling/archive/2019/01/29/216224.htmlhttp://m.shnenglu.com/xiaoxiaoling/comments/216224.htmlhttp://m.shnenglu.com/xiaoxiaoling/archive/2019/01/29/216224.html#Feedback0http://m.shnenglu.com/xiaoxiaoling/comments/commentRss/216224.htmlhttp://m.shnenglu.com/xiaoxiaoling/services/trackbacks/216224.html灝嗗崥瀹㈡惉鑷矯SDN

clcl 2019-01-29 10:39 鍙戣〃璇勮
]]>
epoll閭d簺浜嬪効http://m.shnenglu.com/xiaoxiaoling/archive/2018/07/14/215782.htmlclclclclSat, 14 Jul 2018 03:17:00 GMThttp://m.shnenglu.com/xiaoxiaoling/archive/2018/07/14/215782.htmlhttp://m.shnenglu.com/xiaoxiaoling/comments/215782.htmlhttp://m.shnenglu.com/xiaoxiaoling/archive/2018/07/14/215782.html#Feedback0http://m.shnenglu.com/xiaoxiaoling/comments/commentRss/215782.htmlhttp://m.shnenglu.com/xiaoxiaoling/services/trackbacks/215782.htmlET鍜孡T:   
   LT涓鑸敤鍦ㄥ崟綰跨▼銆?/span>
   ET鍜孍POLLONESHOT閰嶅悎鐢ㄥ湪澶氱嚎紼嬪叡浜竴涓猠poll鐜涓嬶紝EPOLLONESHOT鏍囪瑙﹀彂榪囩殑浜嬩歡浠巈poll涓Щ闄わ紝涓嬫蹇呴』閲嶆柊娉ㄥ唽錛岀敤鏉ラ槻姝㈠綰跨▼鍚屾椂鍙栧埌鍚屼竴涓猻ocket鐨勪簨浠朵駭鐢熷啿紿併?/span>

epoll_wait 絎笁涓弬鏁?鍙栦簨浠舵暟閲忥細
   鍗曠嚎紼嬫ā鍨嬪綋鐒跺敖鍙兘涓嬈″鍙栦竴浜涙晥鐜囬珮錛屽綰跨▼涓轟簡闃叉涓涓嚎紼嬫妸鎵鏈変簨浠跺彇瀹屽叾浠栫嚎紼嬮ゥ楗匡紝ACE瀹炵幇鏄彧鍙?涓?/span>

閿欒澶勭悊錛?/span>
   EAGIN | EINTR | EWOULDBLOCK 閲嶈瘯銆?/span>
   EPOLLERR | EPOLLHUP | EPOLLRDHUP 鏂紑榪炴帴銆?/span>

鎯婄兢錛?/span>
   榛樿緋葷粺閮戒細鏈夎繖闂錛屾嵁璇存柊緋葷粺鏈変慨澶嶄笉榪囪繕鏄鐞嗕竴涓嬫瘮杈冨ソ錛屼竴鑸В鍐蟲柟妗堟槸鍚屾椂鍙湁涓涓嚎紼嬬瓑寰卆ccept錛屽彲浠ュ崟鐙嚎紼媋ccept錛屽皢榪炴帴鍦ㄥ垎緇欏叾浠栧伐浣滅嚎紼嬨俷ginx鏄榪涚▼妯″瀷錛屼嬌鐢ㄤ簡鍩轟簬鍏變韓鍐呭瓨鐨勪簰鏂ラ攣錛屼嬌寰楀悓鏃跺彧鏈変竴涓伐浣滆繘紼嬬殑epoll鍚湁accept鐨剆ocket錛岄氳繃榪欑鏂瑰紡瀹炵幇榪炴帴鏁頒笂鐨勮礋杞藉潎琛★紙榪炴帴鏁板皯鐨勫伐浣滆繘紼嬪緱鍒癮ccept閿佺殑姒傜巼楂橈級銆?br />
   涓轟簡閬垮厤澶ф暟鎹噺io鏃訛紝et妯″紡涓嬪彧澶勭悊涓涓猣d,鍏朵粬fd琚タ姝葷殑鎯呭喌鍙戠敓銆俵inux寤鴻鍙互鍦╢d鑱旂郴鍒扮殑緇撴瀯錛堜竴鑸兘浼氳嚜宸卞皝瑁呬竴涓寘鍚玣d鍜岃鍐欑紦鍐茬殑緇撴瀯浣擄級涓鍔爎eady浣嶏紝鐒跺悗epoll_wait瑙﹀彂浜嬩歡涔嬪悗浠呭皢鍏剁疆浣嶄負ready妯″紡錛岀劧鍚庡湪涓嬭竟杞ready fd鍒楄〃銆?/span>


epoll瀹炵幇錛? 
   epoll鍐呴儴鐢ㄤ簡涓涓孩榛戞爲璁板綍娣誨姞鐨剆ocket錛岀敤浜嗕竴涓弻鍚戦摼琛ㄦ帴鏀跺唴鏍歌Е鍙戠殑浜嬩歡銆?/span>

   娉ㄥ唽鐨勪簨浠舵寕杞藉湪綰㈤粦鏍戜腑(綰㈤粦鏍戠殑鎻掑叆鏃墮棿鏁堢巼鏄痩ogN錛屽叾涓璶涓烘爲鐨勯珮搴?銆?/span>

   鎸傝澆鐨勪簨浠朵細涓庤澶?緗戝崱)椹卞姩寤虹珛鍥炶皟鍏崇郴錛屼篃灝辨槸璇達紝褰撶浉搴旂殑浜嬩歡鍙戠敓鏃朵細璋冪敤榪欎釜鍥炶皟鏂規硶銆傝繖涓洖璋冩柟娉曞湪鍐呮牳涓彨ep_poll_callback,瀹冧細灝嗗彂鐢熺殑浜嬩歡娣誨姞鍒皉dlist鍙岄摼琛ㄤ腑銆?/span>

   浣跨敤mmap鏄犲皠鍐呭瓨錛屽噺灝戝唴鏍告佸拰鐢ㄦ埛鎬佺殑涓嶅悓鍐呭瓨鍦板潃絀洪棿鎷瘋礉寮閿銆?/span>姣忔娉ㄥ唽鏂扮殑浜嬩歡鍒癳poll涓椂錛屼細鎶奻d鎷瘋礉榪涘唴鏍革紝閫氳繃鍐呮牳浜庣敤鎴風┖闂磎map鍚屼竴鍧楀唴瀛?/span>淇濊瘉浜嗗彧浼氭嫹璐濅竴嬈°傦紙榪斿洖鐨勬椂鍊欎笉闇瑕佹嫹璐濓紝select瑕侊級

   鎵цepoll_ctl鏃訛紝闄や簡鎶妔ocket鏀懼埌綰㈤粦鏍戜笂錛岃繕浼氱粰鍐呮牳涓柇澶勭悊紼嬪簭娉ㄥ唽涓涓洖璋冨嚱鏁幫紝鍛婅瘔鍐呮牳錛屽鏋滆繖涓彞鏌勭殑涓柇鍒頒簡錛屽氨鎶婂畠鏀懼埌鍑嗗灝辯華list閾捐〃閲屻傛墍浠ワ紝褰撲竴涓猻ocket涓婃湁鏁版嵁鍒頒簡錛屽唴鏍稿湪鎶婄綉鍗′笂鐨勬暟鎹甤opy鍒板唴鏍鎬腑鍚庡氨鎶妔ocket鎻掑叆鍒板噯澶囧氨緇摼琛ㄩ噷浜嗐傞摼琛ㄥ張鏄氳繃mmap鏄犲皠鐨勭┖闂達紝鎵浠ュ湪浼犻掔粰鐢ㄦ埛紼嬪簭鐨勬椂鍊欎笉闇瑕佸鍒訛紙榪欎篃鏄負浠涔堟瘮select鏁堢巼楂樼殑鍘熷洜錛宔poll_wait榪斿洖鐨勫彧鏄氨緇槦鍒楋紝涓嶉渶瑕佽疆璇?涓嶉渶瑕佸鍒跺畬鎴愮殑浜嬩歡鍒楄〃錛宻elect錛宲oll瀹炵幇闇瑕佽嚜宸變笉鏂疆璇㈡墍鏈塮d闆嗗悎錛岀洿鍒拌澶囧氨緇級銆?/span>

   epoll_wait鏈鍚庝細媯鏌ocket錛屽鏋滄槸 LT錛屽茍涓旇繖浜泂ocket涓婄‘瀹炴湁鏈鐞嗙殑浜嬩歡鏃訛紝鍙堟妸璇ュ彞鏌勬斁鍥炲埌鍒氬垰娓呯┖鐨勫噯澶囧氨緇摼琛ㄤ簡錛圠T姣擡T浣庢晥鐨勫師鍥狅級銆?/span>

 

鍙錛屽鏋滄病鏈夊ぇ閲忕殑絀洪棽錛屾棤鏁堣繛鎺ワ紝epoll鏁堢巼涓嶆瘮select楂樸?/span>

嫻嬭瘯鏁版嵁錛堜粎鏄垰鎺ヨЕgo鐨勬椂鍊欏ソ濂囧仛鐨勫弬鑰冩剰涔夌殑嫻嬭瘯錛夛細  

   鍚屾牱鐨勭幆澧冿紝echo鏈嶅姟鍣ㄦ祴騫跺彂io錛屽崟綰跨▼epoll qps:45000宸﹀彸錛屾瘡榪炴帴/鍗忕▼ go錛?50000澶氾紝澶氱嚎紼媏poll錛堝紑6涓猠poll錛屾瘡涓猠poll寮8綰跨▼錛屼竴鍏?8綰跨▼錛夛細qps 70000澶氥?/span>

 




clcl 2018-07-14 11:17 鍙戣〃璇勮
]]>
tcp/udp錛宻ocket閭d簺浜嬪効http://m.shnenglu.com/xiaoxiaoling/archive/2018/07/13/215781.htmlclclclclFri, 13 Jul 2018 07:49:00 GMThttp://m.shnenglu.com/xiaoxiaoling/archive/2018/07/13/215781.htmlhttp://m.shnenglu.com/xiaoxiaoling/comments/215781.htmlhttp://m.shnenglu.com/xiaoxiaoling/archive/2018/07/13/215781.html#Feedback0http://m.shnenglu.com/xiaoxiaoling/comments/commentRss/215781.htmlhttp://m.shnenglu.com/xiaoxiaoling/services/trackbacks/215781.html姒傚康 錛?
   tcp鍜寀dp錛岃繛鎺ュ拰鏃犺繛鎺ラ兘鏄崗璁紝鏄叡浜墿鐞嗕粙璐ㄧ殑浼犺緭鏁版嵁鐨勫簲鐢ㄧ▼搴忎箣闂寸殑綰﹀畾銆傞潰鍚戣繛鎺ョ殑鍗忚緇存姢浜唖egment鐨勭姸鎬佸拰嬈″簭銆?br />
鏁呴殰 :
      榛樿鏃爇eep alive錛?/span>
鎷旂綉綰挎垨璺?/span>鐢卞櫒宕╂簝錛氬彂閫佺瓚呮椂錛堥噸浼?2嬈″ぇ綰?鍒嗛挓錛夊悗鏀懼純錛屾帴鏀剁璇籩rrorno ETIMEOUT錛屽鏋滄病鏈夎鍒欒絳夊埌涓嬩竴嬈″啓澶辮觸sigpipe銆傚鏋滀腑闂磋礬鐢卞櫒鏃犳硶杞彂鍒欏悜婧愮鍙戦?ICMP 鐩爣涓繪満涓嶅彲杈俱?/span>
紼嬪簭閫鍑猴紙鍖呮嫭宕╂簝錛夛細 紼嬪簭閫鍑哄拰姝e父璋冪敤 close鏃犳硶鍖哄垎錛岄兘浼氳繑鍥濬IN琛ㄧず閫鍑猴紝濡傛灉涓绔鍑猴紝
      鍙︿竴绔細 1.絎竴嬈″啓鍚堟硶錛堟帴鏀跺埌fin鍚庤繕鏄兘緇х畫鍙戦佹暟鎹級絎簩嬈″啓鐨勬椂鍊欏彂鐜拌繛鎺ヤ笉瀛樺湪錛屽緱鍒?RST RESET閿欒 2.璇葷殑鏃跺欏緱鍒? conn reset閿欒錛岀戶緇啓鍒欒SIGPIPE淇″彿涓錛岀▼搴忛鍑恒?/span>
涓繪満瀹曟満錛?瀹曟満鍚庢棤娉曢氳繃FIN閫氱煡瀵規柟錛屽鏂逛細緇х畫閲嶄紶鐩村埌timeout銆傚鏋滆秴鏃跺墠瀹曟満鐨勪富鏈洪噸鍚簡錛屾鏃舵敹鍒伴噸浼犵殑涓繪満娌℃湁榪炴帴璁板綍錛屽悜婧愯繑鍥瀝st錛屽彂閫佺寰楀埌ECONNRESET閿欒錛屽鏋滃彂閫佺鍦ㄨ寰楀埌 conn reset閿欒錛岀戶緇啓鍒欒SIGPIPE淇″彿涓錛岀▼搴忛鍑恒?/span>
寮鍚痥eep alive鎯呭喌涓嬶細
濡傛灉紼嬪簭宕╂簝榪斿洖fin 錛?濡傛灉涓繪満鍙揪浣嗙▼搴忎笉瀛樺湪錛堜富鏈洪噸鍚級錛屽垯鍝嶅簲RSt錛屾簮绔緱鍒癊CONNRESET 閿欒銆?/span>
濡傛灉瀵規柟娌℃湁瀵筴eep alive鍝嶅簲ACK 鎴栬匯ST錛屾簮绔疶IMEOUT錛?/span>閲嶈瘯9嬈★紝姣忔闂撮殧75縐掞紝瀹氭椂鍣?灝忔椂瓚呮椂鍚庣殑11.25鍒嗛挓錛?/span>浠ョ▼搴忚嚜宸卞仛蹇冭煩榪樻槸蹇呰鐨勩?/span>

緇嗚妭錛?br />
tcp鍐欐搷浣滐細
鐢ㄦ埛鎬佹嫹璐濆埌鍐呮牳鎬佸啓緙撳啿鍖哄悗榪斿洖錛屽彧榪斿洖鏄庢樉閿欒錛歴ocket鏃犳晥鎴栫紦鍐插尯鏃犳晥銆傚獎鍝嶇殑鍥犵礌鏈夛細鍙戦佺獥鍙o紝鎷ュ紿楀彛錛屽啓緙撳啿鍖哄ぇ灝忥紝Nagle銆?/span>
tcp鏄彁楂樺甫瀹藉埄鐢ㄧ巼鐨勫崗璁紝姣忔鍙戦佸懼悜mss澶у皬錛屽悓鏃朵笉鑳藉ぇ浜庡绔寚瀹氱殑澶у皬錛堝彂閫佺獥鍙o級錛宼cp鍙冭檻浜嗙綉緇滀腑璺敱鍣ㄧ紦鍐插尯鑰楀敖鎯呭喌錛堜篃鏄痶cp鐨勯檺鍒訛級鎵浠ユ湁鎷ュ紿楀彛鍜屾參鍚姩錛氫負浜嗛槻姝㈢綉緇滄嫢濉烇紙鑷緥鐨勫崗璁級姣忔鍙戦佺殑涓嶈兘澶т簬瀵規柟鎸囧畾鐨勶紙鍙戦佺獥鍙o級鍜岃嚜宸辯粰鑷繁闄愬埗鐨勶紙鎷ュ紿楀彛錛夈?br />

    

鎱㈠惎鍔細涓寮濮嬫寚鏁扮駭鐨勫鍔犳嫢濉炵獥鍙o紝鍒頒竴涓棬闃鍊煎悗鍙樻垚綰挎х殑錛?涔嬪悗姣忔瓚呮椂閮芥妸闂ㄩ榾鍊奸檷浣庡埌鍘熸潵涓鍗婏紙騫朵笖rto緲誨嶏紝TCP瓚呮椂璁$畻鏄疪TOx2錛岃繖鏍瘋繛緇涪涓夋鍖呭氨鍙樻垚RTOx8浜嗭紝鍗佸垎鎭愭?/span>錛夛紝鎷ュ紿楀彛璁劇疆涓?閲嶆柊寮濮嬫參鍚姩錛堟寚鏁扮駭澧炲姞錛夈備竴鍒囬兘鏄負浜嗚璺敱鍣ㄦ湁鏃墮棿澶勭悊縐帇鐨勭紦鍐層傦紙鎵浠ヤ笉閫傜敤浜庨綣佹柇寮榪炴帴鐨勭Щ鍔ㄧ綉緇滐紝榪欎篃鏄負浠涔堜互鍓嶇殑涓嬭澆宸ュ叿寮澶氭潯tcp浼犺緭閫熷害鏇村揩鐨勫師鍥狅級銆?/span>

Nagle綆楁硶錛氱涓嬈★紙姝ゆ椂娌℃湁絳夊緟ack紜錛岀┖闂茶繛鎺ワ級鍙戦佸皬鍖呮垚鍔燂紝絎簩嬈$戶緇彂閫?錛氬摢鎬曞彂閫佺獥鍙o紝鎷ュ紿楀彛閮藉緢澶э紝涔嬪墠鐨勫寘娌℃湁ack紜渚濇棫涓嶈鍙戠洿鍒版敹鍒頒箣鍓嶇殑 ack紜銆?/span>

shutdown鍜宑lose鐨勫尯鍒?

close鍙槸閫掑噺寮曠敤璁℃暟錛?shutdown鐨勫崐鍏抽棴浼氬獎鍝嶆墍鏈夌殑榪涚▼銆?/span>

shutdown how=0 鍏抽棴璇伙紝璇諱細榪斿洖eof
shutdown how=1 鍏抽棴鍐欙紝浠諱綍鍐欎細鍑洪敊錛屽皢緙撳啿鍖虹殑鍙戦佸畬鍚庝細鍙戦乫in琛ㄧず娌℃湁鏁版嵁浜嗭紝
鏀跺埌瀵規柟鍙戦佺殑fin錛宺ecv浼氳繑鍥?銆?/span>
listen 鐨勭浜屼釜鍙傛暟鍒跺畾鐨勬槸鍏ㄨ繛鎺ラ槦鍒楀ぇ灝忥紙accept錛?br />
time_wait鍜宑lose_wait
time_wait 鍑虹幇鍦ㄤ富鍔╟lose鏂癸紝涓轟簡闃叉鏂拌繛鎺ユ敹鍒版棫閾炬帴鐨勬暟鎹寘錛?鏁伴噺楂?/span>鍙互閫氳繃璁劇疆鍐呮牳鍙傛暟緙╃煭鏃墮棿闄嶄綆鏁板鹼紙2msl錛夈傚彲浠ラ氳繃 SO_LINGER鍏抽棴銆?/span>
close_wait 鍑虹幇鍦ㄨ鍔╟lose鏂癸紝鏁伴噺楂樹竴鑸洜涓烘ц兘鎴栬卋ug鍦ㄦ敹鍒癴in鍚庢病鏈夎皟鐢╟lose銆?br />
SO_REUSEADDR
鐢ㄤ簬紼嬪簭宕╂簝鍚庨噸鍚紝瑙e喅鍦板潃琚崰鐢ㄩ棶棰橈紙time_wait錛夛紝鍙︿竴涓敤閫旀槸寮涓や釜鏈嶅姟錛岀涓涓埗瀹氬湴鍧錛岀浜屼釜鎸囧畾INADDR_ANY 閫氶厤鍦板潃錛屽鏋滃鎴風榪炴帴鐨勬槸鍒跺畾鍦板潃涓鏍蜂細鍒扮涓涓猻ocket涓娿?br />      瀵逛簬緇戝畾浜庡悓涓鍦板潃绔彛緇勫悎涓婄殑UDP socket錛宬ernel灝濊瘯鍦ㄥ畠浠箣闂村鉤鍧囧垎閰嶆敹鍒扮殑鏁版嵁鍖咃紱瀵逛簬緇戝畾浜庡悓涓鍦板潃绔彛緇勫悎涓婄殑TCP鐩戝惉socket錛宬ernel灝濊瘯鍦ㄥ畠浠箣闂村鉤鍧囧垎閰嶆敹鍒扮殑榪炴帴璇鋒眰錛堣皟鐢╝ccept()鏂規硶鎵寰楀埌鐨勮姹傦級銆?/span>

Nagle鍜屽歡榪焌ck鐨勯棶棰橈細
鍙戦佺鏁版嵁鏈彂閫佸畬錛岃nagle紱佹鍙戦侊紙蹇呴』絳夊緟鎺ユ敹绔殑ack錛屼篃灝辨槸娌℃湁鏈‘璁ょ殑鍖呮墠鍏佽鍙戦侊級錛屾鏃舵帴鏀剁ack琚歡榪熷彂閫侊紙甯屾湜灝哸ck鍜屾暟鎹竴璧峰彂閫佹彁楂樺甫瀹藉埄鐢ㄧ巼錛夎屽彂閫佹柟鏁版嵁鏈彂閫佸畬瀵艱嚧鎺ユ敹绔棤娉曞洖澶嶏紝鍙屾柟姝婚攣銆?/span>
宸茶繛鎺ョ殑UDP錛?/span>
tcp鐨刢onnect鏄紑濮嬩笁嬈℃彙鎵嬶紝灝嗚繙紼嬬殑ip绔彛緇戝畾鍒皊ocket錛岃宐ind鏄粦瀹氭湰鍦扮殑ip绔彛銆?/span>
udp娌℃湁涓夋鎻℃墜錛宑onnect綰補鏄湰鍦拌涓猴紝灝嗚繙紼嬬殑ip绔彛緇戝畾鍒皊ocket涓娿?/span>
宸茶繛鎺ョ殑udp鍙互涓嶇敤sendto錛宻endto浼氬厛灝唖ocket鍜岀洰鐨勫湴鍧榪炴帴錛岀劧鍚庡彂閫佹暟鎹悗鍐嶆柇寮錛岃屽凡榪炴帴鐨勫凡緇忕粦瀹氬湴鍧鍙互鐢╳rite錛屾彁楂樻晥鐜囷紙璧勬枡鏄劇ず鏆傛椂榪炴帴鏂紑鎵鐢ㄧ殑鏃墮棿鏄紶杈搖dp鏁版嵁鐨勪笁鍒嗕箣涓錛岃繕鏄緢鍙鐨勶級銆傚紓姝ラ敊璇殑鎺ユ敹錛屼嬌鐢╯endto鍙戦佸畬緋葷粺灝辨病鏈夎褰曚簡錛屽簲鐢ㄧ▼搴忔棤娉曟帴鏀朵箣鍚巌cmp榪斿洖鐨勯敊璇?/span>
鎺ユ敹绔凡榪炴帴udp鐨勫ソ澶勶細 鍙互鏍囪瘑鍝釜socket鏄摢涓敤鎴鳳紝鍙﹀榪樺彲浠ョ嫭鍗犺繛鎺ワ紝鍐嶅彟涓涓湴鏂硅皟鐢╮ecvfrom鎸囧畾鐩稿悓鍦板潃浼氳繑鍥濫CONNREFUSED錛屽洜涓烘榪炴帴宸茬粡琚粦瀹氥?/span>


clcl 2018-07-13 15:49 鍙戣〃璇勮
]]>
鍒濊瘑cdnhttp://m.shnenglu.com/xiaoxiaoling/archive/2018/05/09/215630.htmlclclclclWed, 09 May 2018 15:57:00 GMThttp://m.shnenglu.com/xiaoxiaoling/archive/2018/05/09/215630.htmlhttp://m.shnenglu.com/xiaoxiaoling/comments/215630.htmlhttp://m.shnenglu.com/xiaoxiaoling/archive/2018/05/09/215630.html#Feedback0http://m.shnenglu.com/xiaoxiaoling/comments/commentRss/215630.htmlhttp://m.shnenglu.com/xiaoxiaoling/services/trackbacks/215630.html   宸ヤ綔涓婅櫧鐒跺拰cdn娌″叧緋諱絾鏄妧鏈柟鍚戣繕鏄緢澶氱浉浼間箣澶勭殑錛屼緥濡傦細璐熻澆鍧囪 錛岀紦瀛橈紝鍒嗗竷寮忥紝璺敱絳夈?/span>
   cdn綆鍗曠殑璇村氨鏄釜澶嶆潅鐨勫ぇ緙撳瓨錛岀敱浜庣洰鏍囩敤鎴鳳紙鍖呮嫭婧愬拰绔級騫挎硾鐩存帴瀵艱嚧浜嗗叾澶嶆潅鎬э紝閬嶅竷騫胯妭鐐瑰鍒欓渶瑕佸垎嫻佽礋杞界敋鑷寵嚜緇勭粐錛屽簲鐢ㄧ箒鏉傚垯闇瑕佸垎嫻佽礬鐢憋紝鎻愰熷垯闇瑕佺紦瀛橈紝紼沖畾鍒欓渶瑕佺洃鎺ц皟搴︼紝涓轟簡閫忔槑鍒欓渶瑕佸悇縐嶆槧灝勩?/span>
   鐢變簬鎺ュ叆闈㈠箍鍜岀綉緇滅殑澶嶆潅鎬э紝涓嶅彲鑳借瀹㈡埛绔洿鎺ラ潰瀵規簮錛屼簬鏄氨鏈変簡涓撻棬鎺ュ叆瀹㈡埛绔殑杈圭紭鏈嶅姟鍣?緇勶紝榪欎簺杈圭紭鏈嶅姟鍣ㄥ拰鍚庣鐨勮皟搴︼紝鐩戞帶錛屾簮鏈嶅姟鍣ㄩ氳銆傛棦鐒舵槸緙撳瓨灝?/span>娑夊強鍒版暟鎹竴鑷存х殑闂錛?/span>鏈綆鍗曠殑灝辨槸鍚勬帴鍏ョ鐨勮竟緙樻湇鍔″櫒鍦ㄩ渶瑕佺殑鏃跺欏埌鍚庡彴鎷夊彇錛屾垨鑰呮洿鏅鴻兘鐨勪粬浠箣闂村彲浠ョ浉浜掓媺鍙栵紝鐢氳嚦鍚庡彴璋冨害鎻愬墠鎺ㄩ併?/span>
   杈圭紭鎺ユ敹鍒拌姹傚悗棣栧綋鍏跺啿鐨勯棶棰樺氨鏄璇鋒眰鐨勫唴瀹?“鍘誨摢鎵?/span>”鍜?#8220;鎬庝箞鍘?/span>”錛屾兂瑕佺煡閬撳唴瀹圭殑浣嶇疆錛屼竴鑸紦瀛樼殑瀹炵幇涓嶅涔庡氨鏄粺涓鍒頒竴涓洰褰曟湇鍔″櫒鎵撅紝鎴栬呭箍鎾墍鏈夎嚜宸辯煡閬撶殑鑺傜偣闂竴鍦堬紝鏇撮珮鏁堢殑鏂規硶鏄皢璇鋒眰url鍝堝笇鍚庣洿鎺ユ壘鍒扮洰鐨勫湴鍧錛屽綋鐒跺彧瑕佹槸緙撳瓨閮戒細榪囨湡涔熷氨鏈塗TL鐨勬蹇點?#8220;鎬庝箞鍘?#8221;鐨勬柟寮忓縐嶅鏍鳳紝鐢變簬浜掕仈緗憌eb鏈嶅姟灞呭鍩轟簬DNS鐨勮礬鐢變嬌鐢ㄦ渶騫挎硾錛岀己鐐規槸瀹㈡埛绔拰涓戶鐐逛細緙撳瓨錛屾洿鏂伴渶瑕佷竴瀹氭椂闂淬侶TTP閲嶅畾鍚戯紝URL鏀瑰啓錛屼篃鏈夌洿鎺ュ湪緗戠粶璁懼璺敱鍣ㄤ笂鍋氾紝鐩存帴鍦ㄨ礬鐢辮〃涓繚鎸佽礬寰勩傝繖浜涙柟娉曞湪cdn榪欎釜搴炴潅鐨勭郴緇熶腑鏍規嵁闇瑕佷嬌鐢紝渚嬪杈圭紭鏈嶅姟鍣ㄤ負浜嗘帴鏀跺埌瀹㈡埛绔殑璇鋒眰鍙互浣跨敤dns閲嶅畾鍚戯紝鐒跺悗鍐嶇敤鍝堝笇鎴栬卽rl鏀瑰啓杞彂鍒板悗绔殑婧愩?nbsp;
   鐜板浠婄殑緗戠粶鍐呭鏈夎澶氭槸鍔ㄦ佺敓鎴愮殑錛屽榪欎簺鏃犳硶鎻愬墠緙撳瓨鐨勫唴瀹瑰彲浠ョ洿鎺ョ暐榪囧彧瀛橀潤鎬佸唴瀹癸紙鍒嗘緙撳瓨錛夛紝緇勮鐨勬椂鍊欏彂閫佸洖瀹㈡埛绔垨鑰呯洿鎺ヨ祴浜堣竟緙樻湇鍔″櫒鐢熸垚鍔ㄦ佸唴瀹圭殑鑳藉姏錛堣竟緙樿綆楋級褰撶劧榪欏緗戦〉鐨勫埗浣滄湁瑙勮寖銆?/span>
   闈㈠悜澶т紬鐨勬湇鍔¢兘鏈夋疆姹愭晥搴旓紝鍦ㄧ儹鐐規椂孌電殑璁塊棶閲忔槸騫蟲椂鐨勫嚑鍗佷笂鐧懼嶏紙鏍規嵁浜屽叓鐞嗚錛?0%鐨勯棶棰橀兘鏄湪20%鐨勫湴鏂瑰嚭鐜扮殑錛岀儹鐐硅闂噺涔熸槸澶у璁塊棶灝忛儴鍒嗘暟鎹紝濡傛灉鑳芥彁鍓嶅皢鐑偣緙撳瓨浜庡悇杈圭紭鏈嶅姟鍣ㄦ渶鐩存帴鏈夋晥錛夛紝濡傛灉鏈夎嚜閫傚簲鐨勫姩鎬佽皟鏁村姛鑳芥暣涓湇鍔′細鍋ュ.寰堝銆傝竟緙樻湇鍔″櫒鏄鐢ㄦ埛鏈榪戠殑錛屽彲浠ュ皢姣忎釜鑺傜偣鐪嬫垚緇勶紝緇勯暱鐩戞帶璐熻澆鑷傚簲鐨勬坊鍔犲垹闄ょ粍鍛橈紙緙撳瓨鏈嶅姟鍣級浠ュ強鏇存柊dns錛屼笉鍏佽緇勫憳璺ㄧ粍鎷夋暟鎹傚綋鐒跺鏋滃鎴風涔嬮棿鍙互浣跨敤P2P鐩鎬簰鍙栨暟鎹篃鏄竴涓姙娉曘?nbsp;  
   褰撳墠鍑虹幇浜嗗熀浜庢祦濯掍綋鐨刢dn錛岃棰戝唴瀹瑰垎鍙戝湪鍚庣浠ユ枃浠剁殑褰㈠紡浼犺緭錛堥傚悎浼犺緭鐨勬牸寮忔洿楂樻晥錛夛紝鍒拌竟緙樻湇鍔″櫒鍐嶄互嫻佺殑褰㈠紡鍜屽鎴風浼犺緭錛堜笉闇瑕佸叏閮ㄤ紶瀹屽嵆鍙紑濮嬫挱鏀撅級銆傚悓鏃朵篃瑕佺患鍚堣冭檻鏃舵闇姹傦紝瑙嗛緙栫爜絳栫暐涔熷緢閲嶈銆?/span>

clcl 2018-05-09 23:57 鍙戣〃璇勮
]]>
鍏充簬dpdk 鐨勬濊?/title><link>http://m.shnenglu.com/xiaoxiaoling/archive/2017/02/05/214651.html</link><dc:creator>clcl</dc:creator><author>clcl</author><pubDate>Sun, 05 Feb 2017 06:08:00 GMT</pubDate><guid>http://m.shnenglu.com/xiaoxiaoling/archive/2017/02/05/214651.html</guid><wfw:comment>http://m.shnenglu.com/xiaoxiaoling/comments/214651.html</wfw:comment><comments>http://m.shnenglu.com/xiaoxiaoling/archive/2017/02/05/214651.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/xiaoxiaoling/comments/commentRss/214651.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/xiaoxiaoling/services/trackbacks/214651.html</trackback:ping><description><![CDATA[<p><br /></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">dpdk鏄氳繃璁稿涓嶅悓鐨勭含搴︽潵鍔犻熷寘澶勭悊鐨勶紝鍏朵腑涓昏鍖呮嫭錛?/span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">hugepage澶ч〉鍐呭瓨(榪涚▼浣跨敤鐨勬槸铏氭嫙鍦板潃錛屼竴鑸〉琛?4k)鑳芥槧灝勭殑铏氭嫙鍦板潃絀洪棿鏈夐檺錛屼嬌鐢ㄥぇ欏佃兘鍑忓皯鎹㈤〉嬈℃暟鎻愰珮cache鍛戒腑錛岄氳繃mmap鎶婂ぇ欏墊槧灝勫埌鐢ㄦ埛鎬佺殑铏氭嫙鍦板潃絀洪棿鏈夌敤榪噈map鐨勯兘鐭ラ亾榪欐槸瀹炵幇鍏變韓鍐呭瓨鐨勬墜孌碉紝鎵浠pdk榪樻敮鎸佸榪涚▼鍏變韓鍐呭瓨)</span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">cache棰勫彇 (姣忔棰勮褰撳墠鏁版嵁鐩擱偦鍓嶅悗鐨勬暟鎹?錛屾壒閲忔搷浣滄暟鎹紝cache line瀵歸綈(閫氳繃嫻垂涓鐐瑰唴瀛樺皢瑕佹搷浣滅殑鏁版嵁瀵歸綈)</span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">鎺ョ浜嗙綉鍗$敤鎴鋒侀┍鍔ㄤ嬌鐢ㄨ疆璇㈣屼笉鏄綉鍗′腑鏂?/span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">灝嗙綉鍗x tx闃熷垪鏄犲皠鍒扮敤鎴鋒佺┖闂村疄鐜扮湡姝g殑闆舵嫹璐濓紙浼犵粺鍫嗘爤鑷沖皯涔熷緱涓嬈℃嫹璐濓紝鍥犱負闃熷垪絀洪棿鍦ㄥ唴鏍歌屽唴鏍稿拰鐢ㄦ埛鎬佷嬌鐢ㄤ笉鍚岀殑鍦板潃絀洪棿錛?浼犵粺鍫嗘爤涓轟簡鏀寔閫氱敤鎬э紝渚嬪ipx絳夊叾浠栫綉緇滐紝灝嗗寘澶勭悊榪囩▼鍒嗕簡寰堝灞傛錛屽眰涔嬮棿鐨勬帴鍙f爣鍑嗙粺涓鏁版嵁緇撴瀯灝遍渶瑕佽漿鎹紝鏃犲艦涓甫鏉ヤ簡宸ㄥぇ鐨勬垚鏈紝濡俹si涓冨眰妯″瀷鑰屽疄鐢ㄧ殑灝辨槸tcp/ip鍥涘眰妯″瀷</span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">)</span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">綰跨▼緇戝畾cpu</span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">鏀寔NUMA錛屼笉鍚岀殑core灞炰簬涓嶅悓鐨刵ode錛屾瘡涓猲ode鏈夎嚜宸辯殑mempool鍑忓皯鍐茬獊</span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">鏃犻攣鐜艦闃熷垪(鍐茬獊鍙戠敓鏃朵篃鏄竴嬈as鐨勫紑閿)</span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">dpdk閫氳繃tools/dpdk-setup.sh鐨勮剼鏈紝閫氳繃緙栬瘧銆佹寕杞藉唴鏍告ā鍧楋紝 緇戝畾緗戝崱錛堝厛鎶婄綉鍗fconfig down錛夛紝璁劇疆hugepage鍚庡氨鍙互浣跨敤浜嗐?/span></p><p> </p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">鍦ㄥ唴鏍告ā鍧梚gb鍔犺澆鏃訛紝浼氭敞鍐宲ci璁懼椹卞姩</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">static struct pci_driver igbuio_pci_driver = {</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">.name = "igb_uio",</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">.id_table = NULL,</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">.probe = igbuio_pci_probe,</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">.remove = igbuio_pci_remove,</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">};</span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">鍦ㄧ粦瀹氱綉鍗℃椂錛屼細璋冪敤igbuio_pci_probe錛屼嬌鐢ㄧ敤鎴鋒侀┍鍔╱io鎺ョ緗戝崱(涓柇澶勭悊銆乵map鏄犲皠璁懼鍐呭瓨鍒扮敤鎴風┖闂?</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">緋葷粺鍚姩鏃訛紝bios浼氬皢璁懼鎬葷嚎鍦板潃淇℃伅璁板綍鍦?sys/bus/pci/devices錛宒pdk紼嬪簭鍚姩鏃朵細鍘昏繖閲屾壂鎻弍ci璁懼錛屾牴鎹笉鍚岀被鍨嬬殑NIC鏈夊搴旂殑鍒濆鍖栨祦紼嬨傚湪鍚庨潰閰嶇疆闃熷垪鐨勬椂鍊欎細鎶婄敤鎴鋒佺殑闃熷垪鍐呭瓨鍦板潃閫氳繃紜歡鎸囦護浜ょ粰NIC錛屼粠鑰屽疄鐜伴浂鎷瘋礉銆?/span></p><p><img src="http://m.shnenglu.com/images/cppblog_com/xiaoxiaoling/鍥劇墖1.png" width="790" height="772" alt="" /><br /></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">濡傛灉</span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">NIC鏀跺埌鍖咃紝浼氬仛鏍囪錛岃疆璇㈢殑鏃跺欓氳繃鏍囪鍙栨暟鎹寘</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">while (nb_rx < nb_pkts) {</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">/*</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> * The order of operations here is important as the DD status</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> * bit must not be read after any other descriptor fields.</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> * rx_ring and rxdp are pointing to volatile data so the order</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> * of accesses cannot be reordered by the compiler. If they were</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> * not volatile, they could be reordered which could lead to</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> * using invalid descriptor fields when read from rxd.</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> */</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">rxdp = &rx_ring[rx_id];</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">staterr = rxdp->wb.upper.status_error;</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">if (! (staterr & rte_cpu_to_le_32(E1000_RXD_STAT_DD)))</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">break;</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">rxd = *rxdp;</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">鍙戝寘鐨勮疆璇㈠氨鏄疆璇㈠彂鍖呯粨鏉熺殑紜歡鏍囧織浣嶏紝紜歡鍙戝寘瀹屾垚浼氬啓鍥炴爣蹇椾綅錛岄┍鍔ㄥ彂鐜板悗鍐嶉噴鏀懼搴旂殑鎻忚堪絎﹀拰緙撳啿鍧椼?/span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">KNI</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">閫氳繃鍒涘緩涓涓櫄鎷熺綉鍗★紝灝嗘敹鍒扮殑鍖呬涪緇欏崗璁爤</span></p><p><span style="mso-spacerun:'yes';font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> /* 鍙戦乻kb鍒板崗璁爤 */</span></p><p><span style="mso-spacerun:'yes';font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">            /* Call </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">netif</span><span style="mso-spacerun:'yes';font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> interface */</span></p><p><span style="mso-spacerun:'yes';font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">            </span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">netif</span><span style="mso-spacerun:'yes';font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">_receive_skb(skb);</span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">POWER </span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">鍦ㄨ礋杞藉皬鐨勬椂鍊欐病鏈夊繀瑕佷嬌鐢ㄨ疆璇㈡ā寮忥紝榪欐椂鍙互鎵撳紑緗戝崱涓柇 浣跨敤eventfd  epoll閫氱煡鐢ㄦ埛灞?/span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">Ring</span></p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">鏃犻攣鐜艦闃熷垪鐨勬牳蹇冨氨鏄搷浣滃ご灝劇儲寮曪紝鍏堝皢澶村熬绱㈠紩璧嬬粰涓存椂鍙橀噺錛屽啀鎶婂熬绱㈠紩寰鍚庤煩n涓綅緗紝鍒╃敤cas鍒ゆ柇澶村鏋滆繕鏄湪鍘熸潵鐨勪綅緗氨鎸囧悜灝懼惁鍒欏氨閲嶅榪欎釜榪囩▼錛岀劧鍚庡湪鎿嶄綔涓棿璺寵繃鐨刵涓厓绱犲氨鏄畨鍏ㄧ殑浜嗭紝姝ゆ椂澶村熬绱㈠紩搴旇鎸囧悜鍚屼竴涓綅緗紝濡傛灉涓嶅悓搴旇鏄湁鍒殑綰跨▼涔熷湪鎿嶄綔錛岄噸澶嶇瓑寰呭嵆鍙?榪欓噷鏈変釜緇嗚妭錛岀儲寮曟槸鍙姞涓嶅噺鐨勶紝鍥犱負鏄幆褰㈤槦鍒楃儲寮曞張鏄痷nsigned 32bits錛屾墍浠ユ瘡嬈″彇鏁版嵁鍓嶆妸绱㈠紩妯¢槦鍒楅暱搴?1錛?uint32_t mask;           /**< Mask (size-1) of ring. */鍗沖彲</span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">)</span></p><p> </p><p><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">Windows涓嬩嬌鐢╲mware铏氭嫙鏈虹殑鏃跺欏嚭鐜癊AL: Error</span><span style="mso-spacerun:'yes';font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;"> reading from file descriptor</span><span style="mso-spacerun:'yes';font-family:瀹嬩綋;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;">錛屾牴鎹綉涓婄殑璇存硶鎵撲簡patch榪樻槸涓嶈錛屽悗鏉ュ皾璇曟寕杞藉唴鏍告ā鍧楃殑鏃跺欎笉鍔犺澆vfio妯″潡灝卞彲浠ヤ簡</span></p><p> </p><img src ="http://m.shnenglu.com/xiaoxiaoling/aggbug/214651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/xiaoxiaoling/" target="_blank">clcl</a> 2017-02-05 14:08 <a href="http://m.shnenglu.com/xiaoxiaoling/archive/2017/02/05/214651.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Redis瑙f瀽http://m.shnenglu.com/xiaoxiaoling/archive/2017/01/24/214634.htmlclclclclTue, 24 Jan 2017 10:13:00 GMThttp://m.shnenglu.com/xiaoxiaoling/archive/2017/01/24/214634.htmlhttp://m.shnenglu.com/xiaoxiaoling/comments/214634.htmlhttp://m.shnenglu.com/xiaoxiaoling/archive/2017/01/24/214634.html#Feedback0http://m.shnenglu.com/xiaoxiaoling/comments/commentRss/214634.htmlhttp://m.shnenglu.com/xiaoxiaoling/services/trackbacks/214634.html

Redis鏄伐浣滀腑寰堝父鐢ㄧ殑錛岃繖閲屽皢姣旇緝鏅亶浣跨敤鐨勭粨鏋勭爺絀朵簡涓嬪仛涓蹇樸?/span>

 

hash

瀹炵幇鍜宒nspod鐨刣ataset鍗婃枻鍏袱錛屾湰璐ㄤ笂鏄釜浜岀淮鏁扮粍錛岄氳繃灝唊ey鍝堝笇浣滀負涓緇寸殑涓嬭〃錛岀浜岀淮鐨勬暟緇勫瓨鐩稿悓鍝堝笇鐨勫厓绱狅紝鏌ユ壘浣跨敤閬嶅巻鐨勬柟寮忥紝鎵浠ヨ繖閲宺edis鍋氫簡浼樺寲錛屽綋婊¤凍鏉′歡鐨勬椂鍊?鏁扮粍鏁伴噺澶ぇ)浼氳繘琛宺ehash錛屽姩鎬佹墿澶ф《鐨勬暟閲忔潵鍑忓皯鏈鍚庝竴緇撮亶鍘嗙殑嬈℃暟.

鍑芥暟鍚嶇О

浣滅敤

澶嶆潅搴?/span>

dictCreate

鍒涘緩涓涓柊瀛楀吀

O(1)

dictResize

閲嶆柊瑙勫垝瀛楀吀鐨勫ぇ灝?/span>

O(1)

dictExpand

鎵╁睍瀛楀吀

O(1)

dictRehash

瀵瑰瓧鍏歌繘琛孨姝ユ笎榪涘紡Rehash

O(N)

_dictRehashStep

瀵瑰瓧鍏歌繘琛?姝ュ皾璇昍ehash

O(N)

dictAdd

娣誨姞涓涓厓绱?/span>

O(1)

dictReplace

鏇挎崲緇欏畾key鐨剉alue鍊?/span>

O(1)

dictDelete

鍒犻櫎涓涓厓绱?/span>

O(N)

dictRelease

閲婃斁瀛楀吀

O(1)

dictFind

鏌ユ壘涓涓厓绱?/span>

O(N)

dictFetchValue

閫氳繃key鏌ユ壘value

O(N)

dictGetRandomKey

闅忔満榪斿洖瀛楀吀涓竴涓厓绱?/span>

O(1)

 

瀛楀吀緇撴瀯

typedef struct dict {

    // 綾誨瀷鐗瑰畾鍑芥暟

    dictType *type;

    // 縐佹湁鏁版嵁

    void *privdata;

    // 鍝堝笇琛?/span>

    dictht ht[2];

    // rehash 绱㈠紩

    // 褰?rehash 涓嶅湪榪涜鏃訛紝鍊間負 -1

    int rehashidx; /* rehashing not in progress if rehashidx == -1 */

    // 鐩墠姝e湪榪愯鐨勫畨鍏ㄨ凱浠e櫒鐨勬暟閲?/span>

    int iterators; /* number of iterators currently running */

} dict;

榪欓噷鍝堝笇琛ㄦ湁涓や釜錛屼竴鑸兘鐢╤t[0]錛屽綋闇瑕乺ehash鐨勬椂鍊欎細鍒涘緩涓涓瘮ht[0]澶х殑 2 鐨?N 嬈℃柟鐨刪t[1]錛岀劧鍚庢笎榪涘紡鐨勫皢鏁版嵁dictEntry縐昏繃鍘?闄や簡瀹氭椂鐨剅ehash錛屽湪姣忔鎿嶄綔鍝堝笇琛ㄦ椂閮戒細_dictRehashStep)錛屽畬鎴愬悗灝唄t[1]鏇挎崲ht[0]

 

zset

zset鏈川灝辨槸list,鍙笉榪囨瘡涓厓绱犻兘鏈夎嫢騫蹭釜鎸囧悜鍚庣戶span闀跨殑鎸囬拡錛岃繖鏍風畝鍗曠殑璁捐澶уぇ鎻愰珮浜嗘晥鐜囷紝浣垮緱鍙互姣旀嫙騫寵 浜屽弶鏍戯紝鏌ユ壘銆佸垹闄ゃ佹彃鍏ョ瓑鎿嶄綔閮藉彲浠ュ湪瀵規暟鏈熸湜鏃墮棿鍐呭畬鎴愶紝瀵規瘮騫寵 鏍戯紝璺寵穬琛ㄧ殑瀹炵幇瑕佺畝鍗曠洿瑙傚緢澶氥?/span>

 

 

/* ZSETs use a specialized version of Skiplists */

/*

 * 璺寵穬琛ㄨ妭鐐?/span>

 */

typedef struct zskiplistNode {

    // 鎴愬憳瀵硅薄

    robj *obj;

    // 鍒嗗?/span>

    double score;

    // 鍚庨鎸囬拡

    struct zskiplistNode *backward;

    // 灞?/span>

    struct zskiplistLevel {

        // 鍓嶈繘鎸囬拡

        struct zskiplistNode *forward;

        // 璺ㄥ害

        unsigned int span;

    } level[];

} zskiplistNode;

 

/*

 * 璺寵穬琛?/span>

 */

typedef struct zskiplist {

    // 琛ㄥご鑺傜偣鍜岃〃灝捐妭鐐?/span>

    struct zskiplistNode *header, *tail;

    // 琛ㄤ腑鑺傜偣鐨勬暟閲?/span>

    unsigned long length;

    // 琛ㄤ腑灞傛暟鏈澶х殑鑺傜偣鐨勫眰鏁?/span>

    int level;

} zskiplist;

 

/*

 * 鏈夊簭闆嗗悎

 */

typedef struct zset {

 

    // 瀛楀吀錛岄敭涓烘垚鍛橈紝鍊間負鍒嗗?/span>

    // 鐢ㄤ簬鏀寔 O(1) 澶嶆潅搴︾殑鎸夋垚鍛樺彇鍒嗗兼搷浣?/span>

    dict *dict;

    // 璺寵穬琛紝鎸夊垎鍊兼帓搴忔垚鍛?/span>

    // 鐢ㄤ簬鏀寔騫沖潎澶嶆潅搴︿負 O(log N) 鐨勬寜鍒嗗煎畾浣嶆垚鍛樻搷浣?/span>

    // 浠ュ強鑼冨洿鎿嶄綔

    zskiplist *zsl;

 

} zset;

 

铏界劧榪欑鏂瑰紡鎺掑簭鏌ユ壘寰堝揩錛屼絾鏄慨鏀圭殑璇濆氨寰楀鍋氫簺宸ヤ綔浜?/span>

 

/* Delete an element with matching score/object from the skiplist.

 *

 * 浠庤煩璺冭〃 zsl 涓垹闄ゅ寘鍚粰瀹氳妭鐐?score 騫朵笖甯︽湁鎸囧畾瀵硅薄 obj 鐨勮妭鐐廣?/span>

 *

 * T_wrost = O(N^2), T_avg = O(N log N)

 */

int zslDelete(zskiplist *zsl, double score, robj *obj)

 

intset

typedef struct intset {  

uint32_t encoding; //鎵浣跨敤綾誨瀷鐨勯暱搴︼紝4\8\16  

uint32_t length; //鍏冪礌涓暟  

int8_t contents[]; //淇濆瓨鍏冪礌鐨勬暟緇?/span>  

} intset;  

 

intset鍏跺疄灝辨槸鏁扮粍錛屾湁搴忋佹棤閲嶅鍦頒繚瀛樺涓暣鏁板鹼紝鏌ユ壘鐢ㄧ殑鏄簩鍒嗘煡鎵?* T = O(log N)錛屾坊鍔犵殑璇濆湪鎵懼埌瀵瑰簲鐨勬暟緇勪腑搴旇瀛樺湪鐨勪綅瀛愬悗浣跨敤memmove鍚戝悗縐誨嚭絀轟綅濉ˉ(褰撶劧闇瑕佸厛realloc棰勫垎閰嶇┖闂?錛屽悓鐞嗗垹闄や篃鏄敤memmove鍚戝墠縐誨姩

 

set

褰撲嬌鐢ㄦ暣鏁版椂錛屼嬌鐢╥ntset錛屽惁鍒欎嬌鐢ㄥ搱甯岃〃

 

 

鍏朵粬鐨勫叧浜庣綉緇滀簨浠跺鐞嗭紝epoll錛屽洖璋冿紝鎷嗗寘閮藉拰姝e父浣跨敤宸笉澶氾紝鍏充簬閿欒澶勭悊EINTR(緋葷粺璋冪敤鏈熼棿鍙戠敓涓柇)鍜孍AGAIN 緇х畫閲嶈瘯鑰屽鏋滄槸EPOLLHUP鎴朎POLLERR鍒欒io璇ヨ璇昏鍐欏啓錛屾湁閿欏鐞嗗氨鏄簡銆?/span>

 

 



clcl 2017-01-24 18:13 鍙戣〃璇勮
]]>
dnspod瑙f瀽http://m.shnenglu.com/xiaoxiaoling/archive/2017/01/23/214630.htmlclclclclMon, 23 Jan 2017 07:14:00 GMThttp://m.shnenglu.com/xiaoxiaoling/archive/2017/01/23/214630.htmlhttp://m.shnenglu.com/xiaoxiaoling/comments/214630.htmlhttp://m.shnenglu.com/xiaoxiaoling/archive/2017/01/23/214630.html#Feedback0http://m.shnenglu.com/xiaoxiaoling/comments/commentRss/214630.htmlhttp://m.shnenglu.com/xiaoxiaoling/services/trackbacks/214630.html 

 

dns鐨勯掑綊瑙f瀽榪囩▼榪樻槸鎸虹箒鐞愮殑錛岃鐭ラ亾涓涓煙鍚嶅彲鑳芥湁cname銆乶s 鑰岃姹傜殑cname銆乶s鍙兘榪樻湁cname銆乶s錛屽鏋滄寜鐓х嚎鎬х殑澶勭悊姣忎釜璇鋒眰閭i昏緫灝卞彉鎴愭瘺綰垮洟浜?/span>

dnspod鐨勫鐞嗚繕鏄尯宸у鐨勶紝閫氳繃涓涓叕鍏辯殑鏁版嵁闆哾ataset灝嗘墍鏈夊煙鍚嶅搴旂殑a銆乧name銆乶s絳夌被鍨嬬殑鏁版嵁浣滀負鍗曠嫭鐨勬潯鐩瓨鍏ワ紝褰撴湁闇瑕佹煇涓煙鍚嶇殑淇℃伅鏃跺厛鍘籨ataset鎵撅紝鎵句笉鍒板湪鍔犲叆qlist璇鋒眰鏍癸紝鏈変笓闂ㄧ殑綰跨▼涓嶉棿鏂殑灝唓list杞dataset鎵撅紙榪欓噷鍙嬈℃暟鍏佽錛屾病寰楀埌鎯寵鐨勭粨鏋滃氨杞鎵鏈塹list鍒癲ataset鎵捐櫧鐒跺彲浠ョ畝鍖栭昏緫鍒嗙鐨勫交搴曚絾鏄細鏄釜鎬ц兘鐡墮錛屽悗闈㈡湁鏂規錛夊綋鏍硅繑鍥炰互鍚庡彧鏄畝鍗曠殑灝嗚褰?閫氬父鏄竴涓煙鍚嶇殑cname銆乶s鎴栬卆)瀛樺叆dataset(鑰屼笉鏄戶緇祦紼嬶紝鍥犱負鏍規嵁榪欎釜榪斿洖鏄痗name榪樻槸ns鎴栬卆澶勭悊涓嶅悓閫昏緫澶嶆潅錛岃岃繖鏍峰鐞嗗浜庣敤鍒扮浉鍚屽煙鍚嶇殑璇鋒眰榪樻湁浼樺寲浣滅敤)錛屽墿涓嬬殑宸ヤ綔浜ょ粰閭h竟涓嶉棿鏂疆璇㈢殑綰跨▼

 

Dnspod涓昏鐢?涓猺un錛堣嫢騫蹭釜綰跨▼錛夌粍鎴?/span>

 

run_sentinel  鐩戝惉53绔彛鎺ユ敹瀹㈡埛绔姹傦紝灝嗚姹傛斁鍒伴槦鍒椾腑

run_fetcher   浠庨槦鍒椾腑鍙栧嚭璇鋒眰錛屾牴鎹畄name鍙栧緱鏈鍚庝竴綰name錛屾煡鐪嬫湰鍦癲ataset 鏄惁鏈夎褰曪紝濡傛灉鏈夊垯榪斿洖錛屾病鏈夊垯灝嗚璇鋒眰鏀懼叆qlist涓?/span>

 

run_quizzer    

1.涓嶉棿鏂殑閬嶅巻qlist錛屽彧瑕佺姸鎬佷負PROCESS_QUERY涓?/span>dataset涓病鏈夌殑灝卞悜瀵瑰簲鐨勬牴鍙戦佽姹傘?/span>

2.閫氳繃epoll絳夊緟鏍硅繑鍥烇紝瑙f瀽榪斿洖鐨勬暟鎹姞鍏?dataset

3.媯鏌ヨ褰曠殑ttl錛屽湪灝嗚褰曞姞鍏ataset鏃惰繕浼氬皢榪欎簺璁板綍浠ョ孩榛戞爲鐨勫艦寮忕粍緇囪搗鏉ワ紝鍙栧緱ttl鏈鏃╁埌鏈熺殑錛屽皢鍏舵斁鍏list涓瓑寰呭埛鏂幫紝娉ㄦ剰榪欓噷涓嶆槸鍒犻櫎錛屽鏋滄敹涓嶅埌涓嶈繑鍥炲垯璇ヨ褰曚竴鐩村瓨鍦?/span>

 

鍏充簬dataset鐨勫疄鐜?/span>

dataset鏄嬌鐢ㄥ搱甯岃〃瀹炵幇鐨勶紝鏈川涓婃槸涓簩緇存暟緇勶紝灝嗗煙鍚嶅搱甯屾垚涓涓鹼紝妯′笂鏁扮粍鐨勬暟閲忎綔涓轟笅鏍囷紝鎵懼埌瀵瑰簲鐨勬暟緇勬帴鐫閬嶅巻鏌ユ壘錛屾牴鎹渶瑕佸彲浠ユ墿澶ф暟緇勭殑鏁伴噺鎻愬崌鎬ц兘銆?/span>

 

鎴戜滑鐨勪紭鍖栨墜孌?/span>

涔嬪墠鎻愬埌dnspod鐨剄list浼氫笉闂存柇杞錛屽睘浜庝富鍔ㄦ煡璇紝瀵規ц兘鏈変笉灝忕殑褰卞搷錛岃繖閲屾垜浠噰鍙栫殑鍋氭硶鏄鍔?綾諱技鍥炶皟鐨勬柟寮?錛屾垜浠皢璇鋒眰鐨勫煙鍚嶅拰綾誨瀷鍒嗙被錛岀浉鍚岀殑鏀懼湪涓緇勶紝褰揹ataset鎵句笉鍒板悜鏍瑰彂鍑鴻姹傚悗鎴戜滑騫朵笉姣忔涓誨姩杞錛岃屾槸鍦ㄧ瓑鍒板簲絳斿悗錛岃Е鍙戣鍩熷悕鍜岀被鍨嬬殑璇鋒眰緇勶紝璁╀粬浠牴鎹嚜宸辯殑閫昏緫璧頒笅涓姝ワ紙涓鑸槸鍏堟壘璇ュ煙鍚嶇殑鏈鍚庝竴綰name錛屾牴鎹繖涓猚name鏌ユ槸鍚﹀瓨鍦ㄤ粬鐨勫搴旇姹傜被鍨嬬殑璁板綍錛屼竴鑸槸a鎴栬卬s錛屽鏋滄病鏈夛紝鍒欐壘榪欎釜cname鐨刵s錛?/span>

 

浠ヤ笂鍙互鐪嬪嚭dataset寰堥噸瑕侊紝璐熻澆涔熶笉灝忥紝榪樼粡甯擱渶瑕佸茍鍙戣闂紝榪欓噷鎴戜滑姣忔鎺ユ敹鍒版牴鐨勫洖澶嶅悗錛岄櫎浜嗗皢璁板綍鐨勭瓟妗堝姞榪沝ataset錛岃繕鍒涘緩涓涓復鏃剁殑dataset錛屽彧瀛樿嬈″洖澶嶇殑淇℃伅錛屽湪鍚庨潰鐨勬祦紼嬩細浼樺厛鍒拌繖閲屽幓鎵撅紝娌℃湁鐨勫啀鎵綿ataset銆?/span>



clcl 2017-01-23 15:14 鍙戣〃璇勮
]]>
Network Stack Specialization for Performancehttp://m.shnenglu.com/xiaoxiaoling/archive/2017/01/22/214625.htmlclclclclSun, 22 Jan 2017 10:01:00 GMThttp://m.shnenglu.com/xiaoxiaoling/archive/2017/01/22/214625.htmlhttp://m.shnenglu.com/xiaoxiaoling/comments/214625.htmlhttp://m.shnenglu.com/xiaoxiaoling/archive/2017/01/22/214625.html#Feedback0http://m.shnenglu.com/xiaoxiaoling/comments/commentRss/214625.htmlhttp://m.shnenglu.com/xiaoxiaoling/services/trackbacks/214625.html闃呰鍏ㄦ枃

clcl 2017-01-22 18:01 鍙戣〃璇勮
]]>
cegui 0.7 娓叉煋鏀瑰姩http://m.shnenglu.com/xiaoxiaoling/archive/2010/04/27/113741.htmlclclclclTue, 27 Apr 2010 12:56:00 GMThttp://m.shnenglu.com/xiaoxiaoling/archive/2010/04/27/113741.htmlhttp://m.shnenglu.com/xiaoxiaoling/comments/113741.htmlhttp://m.shnenglu.com/xiaoxiaoling/archive/2010/04/27/113741.html#Feedback2http://m.shnenglu.com/xiaoxiaoling/comments/commentRss/113741.htmlhttp://m.shnenglu.com/xiaoxiaoling/services/trackbacks/113741.html涓鐩存兂鐢╟egui錛屼絾鏄病鏈轟細鐢紝鍙槸鎶界┖鐪嬪叾浠g爜

鏈榪戝惉鏈嬪弸璇?.7 debug涓嬪撫鏁版彁楂?00澶氾紝鎸烘儕璁剁殑錛岄噸鏂板埌涔呰繚浜嗙殑瀹樼綉涓婁笅浜?.7.1

鐪嬩簡涓嬫覆鏌撶殑瀹炵幇(GL)

棣栧厛錛屾坊鍔犱簡GeometryBuffer鐜╂剰錛屼嬌寰楁瘡涓獁indow淇濆瓨浜嗗睘浜庤嚜宸辯殑欏剁偣鍜岀汗鐞嗕俊鎭?/p>

鐒跺悗鍦≧enderingSurface涓湁GeometryBuffer闃熷垪錛屼嬌寰楁瘡涓嫢鏈堿utoRenderingSurface灞炴х殑window鏈夊睘浜庤嚜宸辯殑闃熷垪(榛樿鍙湁FrameWindow鎵嶆湁)

鑰屽湪drawself涓墽琛岀殑鍒欐槸鍏堥氳繃looknfeel錛屾妸闇瑕佹覆鏌撶殑淇℃伅涓㈠埌姣忎釜閮ㄤ歡鑷繁鐨凣eometryBuffer閲岋紝鐒跺悗鎶奊eometryBuffer涓㈠埌RenderingSurface鐨勯槦鍒椾腑(涓鑸負

FrameWindow鐨凣eometryBuffer闃熷垪錛屾瘡涓潰鏉垮氨鏈夎嚜宸辯殑娓叉煋闃熷垪浜?

瑕佺煡閬撲互寰閮芥槸鍙湁涓涓槦鍒楃殑錛岃娓叉煋鍟ョ洿鎺ュ線閲屽銆?銆?銆?br>榪欐牱涓鏀瑰氨涓嶅繀姣忎釜灝忛儴浠舵湁鏇存敼閮借鍏ㄩ儴閲嶆柊娓呯┖娓叉煋浜?/p>


鍐嶅線鍚庡氨鏄妸姣忎釜紿楀彛闃熷垪閲岀殑GeometryBuffer娓叉煋鍒板悇鑷殑RenderingSurface琛ㄩ潰涓婏紝榪欓噷瑕佹敞鎰忕殑鏄茍涓嶆槸娓叉煋鍒板睆騫曚笂鑰屾槸琛ㄩ潰涓婏紝cegui鍦ㄨ繖閲屼嬌鐢ㄤ簡娓叉煋鍒扮汗鐞嗭紝GL

鐢ㄧ殑鏄痜bo瀹炵幇鐨勩?/p>

娉ㄦ剰RenderingSurface鍙湁涓や釜鏉ユ簮錛屼竴鏄氳繃璁劇疆AutoRenderingSurface灞炴э紝鍙︿竴涓氨鏄疪enderingRoot浜嗭紝RenderingRoot鍙湁涓涓紝鍦╮ender涓紝閫氳繃絎竴涓潵婧愮殑浣?/p>

鐢ㄧ殑鏄痜bo鐨勬覆鏌擄紝鑰岀浜屼釜鏉ユ簮鍒欑洿鎺ユ覆鏌撳埌灞忓箷浜嗐?/p>

鎵鏈夌殑榪欎簺鎵ц瀹屽悗灝卞彲浠ユ覆鏌撳埌灞忓箷浜嗭紝閫氳繃RenderingRoot鎵ц錛屾敞鎰忚繖閲岀殑RenderingRoot涓殑RenderTarget鍜屼箣鍓嶇殑涓嶄竴鏍鳳紝榪欓噷鐢ㄧ殑鏄疧penGLViewportTarget鑰屼笉鏄?/p>

OpenGLFBOTextureTarget銆?br>



clcl 2010-04-27 20:56 鍙戣〃璇勮
]]>
[杞琞鐞嗚В鎵規http://m.shnenglu.com/xiaoxiaoling/archive/2009/10/25/99425.htmlclclclclSun, 25 Oct 2009 09:15:00 GMThttp://m.shnenglu.com/xiaoxiaoling/archive/2009/10/25/99425.htmlhttp://m.shnenglu.com/xiaoxiaoling/comments/99425.htmlhttp://m.shnenglu.com/xiaoxiaoling/archive/2009/10/25/99425.html#Feedback0http://m.shnenglu.com/xiaoxiaoling/comments/commentRss/99425.htmlhttp://m.shnenglu.com/xiaoxiaoling/services/trackbacks/99425.html闃呰鍏ㄦ枃

clcl 2009-10-25 17:15 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久在线免费观看视频| 欧美成人自拍| 狼狼综合久久久久综合网| 亚洲综合色丁香婷婷六月图片| 在线国产日韩| 亚洲精品免费看| 亚洲欧洲精品一区二区精品久久久| 国产亚洲欧美一级| 国内久久视频| 亚洲国产精品一区二区www在线| 亚洲高清久久| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 国产精品s色| 欧美日韩成人一区二区三区| 欧美区在线播放| 国产精品美女一区二区在线观看| 国产精品综合色区在线观看| 伊人成人在线视频| 99re热这里只有精品视频| 亚洲午夜精品| 麻豆av一区二区三区久久| 亚洲黄色av| 亚洲精选视频在线| 性欧美videos另类喷潮| 久久香蕉精品| 欧美午夜理伦三级在线观看| 国产亚洲精品aa午夜观看| 最新精品在线| 久久se精品一区二区| 亚洲国产精品免费| 午夜视频一区二区| 欧美乱人伦中文字幕在线| 亚洲三级国产| 亚洲在线免费视频| 欧美xxx成人| 国产偷自视频区视频一区二区| 91久久黄色| 久久精品盗摄| 99亚洲视频| 狂野欧美激情性xxxx| 国产精品免费小视频| 在线看欧美日韩| 欧美一区二区免费视频| 亚洲激情成人| 久久久久国产精品麻豆ai换脸| 欧美三日本三级少妇三2023| 亚洲二区精品| 久久久免费观看视频| 亚洲图片欧美午夜| 欧美日韩另类综合| 99re热精品| 亚洲日本一区二区三区| 欧美日韩mp4| 亚洲成在人线av| 久久精品女人天堂| 国内精品久久久久伊人av| 亚洲午夜电影| 日韩亚洲成人av在线| 亚洲一区二区三区高清| 国产亚洲综合精品| 久久国产精品久久久久久久久久 | 中文精品视频| 欧美日韩视频第一区| 99re成人精品视频| 亚洲高清不卡一区| 欧美成人三级在线| 亚洲精品一二| 亚洲毛片在线| 国产精品高清免费在线观看| 亚洲欧美精品在线| 亚洲欧美伊人| 国产精品揄拍一区二区| 欧美呦呦网站| 久久久国产视频91| 亚洲黄色在线视频| 亚洲人成在线观看一区二区| 欧美日本三区| 午夜精品久久久久久久99樱桃| 亚洲一区在线免费| 国产亚洲精品久久久| 久久综合999| 欧美成人亚洲| 亚洲综合第一| 久久成人亚洲| 99精品国产在热久久| 亚洲一区二区在线免费观看视频| 国产日本精品| 亚洲高清视频在线观看| 亚洲欧洲在线一区| 欧美久久一级| 欧美一区二区在线| 葵司免费一区二区三区四区五区| 日韩视频永久免费观看| 亚洲在线电影| 亚洲福利专区| 亚洲私人黄色宅男| 亚洲高清三级视频| 一区二区三区视频免费在线观看 | 国产一区二区黄色| 亚洲黄色在线看| 国产精品一页| 91久久国产精品91久久性色| 国产精品无码永久免费888| 欧美freesex8一10精品| 国产精品福利在线| 欧美激情亚洲| 国产欧美日韩不卡| 91久久久久| 红桃av永久久久| 一区二区不卡在线视频 午夜欧美不卡在| 国产深夜精品福利| 99视频有精品| 亚洲韩国精品一区| 香蕉久久夜色精品国产使用方法 | 蘑菇福利视频一区播放| 国产精品自在线| 亚洲人成在线播放网站岛国| 一区二区在线观看av| 亚洲婷婷在线| 亚洲久久成人| 乱人伦精品视频在线观看| 午夜精品一区二区三区电影天堂| 欧美成人免费在线观看| 免费影视亚洲| 国产综合久久久久久| 亚洲四色影视在线观看| 亚洲精品欧美| 免费影视亚洲| 欧美成年人视频| 精品999成人| 欧美专区第一页| 久久国产日本精品| 国产欧美日本一区视频| 亚洲专区免费| 欧美一区二区国产| 国产精品三级视频| 亚洲一区二区影院| 久久gogo国模裸体人体| 国产啪精品视频| 性色av一区二区三区在线观看| 午夜精品一区二区在线观看| 欧美偷拍另类| 亚洲视频免费观看| 午夜一级久久| 国产色产综合色产在线视频| 久久xxxx精品视频| 久久久久国产一区二区| 国产一区二区三区免费不卡 | 麻豆成人综合网| 亚洲高清视频一区二区| 日韩视频一区二区| 欧美日韩一级黄| 亚洲欧美日韩视频一区| 国产精品高潮在线| 性高湖久久久久久久久| 老牛国产精品一区的观看方式| 国产综合色一区二区三区| 久久久免费精品视频| 欧美激情第3页| 亚洲午夜视频| 国产亚洲精品aa午夜观看| 久久人人爽国产| 亚洲三级视频| 久久av老司机精品网站导航 | 欧美专区18| 在线观看视频一区二区| 欧美精品色网| 亚洲一区二区精品在线| 美女成人午夜| 亚洲男人第一网站| 一区福利视频| 欧美视频国产精品| 久久久91精品国产一区二区精品| 欧美激情网友自拍| 午夜在线不卡| 亚洲免费精彩视频| 国产手机视频精品| 欧美日韩123| 久久精品国产久精国产爱| 亚洲国产精品一区在线观看不卡 | 99国产一区二区三精品乱码| 国产精品腿扒开做爽爽爽挤奶网站| 久久精品一区二区三区四区 | 日韩网站在线看片你懂的| 国产精品久久看| 欧美成人黄色小视频| 性亚洲最疯狂xxxx高清| 99精品欧美一区| 欧美国产日韩视频| 久久久亚洲高清| 午夜在线观看免费一区| 夜夜嗨一区二区| 亚洲国产精品成人| 国产一区二区久久| 国产精品久久久久一区二区三区共| 六月丁香综合| 久久久国产精品一区二区三区| 亚洲主播在线播放| 一级日韩一区在线观看| 欧美二区乱c少妇|