• <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>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            共6頁: 1 2 3 4 5 6 
            1.對于STL這樣的態(tài)度的公司或團(tuán)隊(duì),不乏少數(shù)。其實(shí),不論從容器還是算法來說,STL提供的容器和算法足夠大部分情況下的使用。boost也同樣好。當(dāng)然,主要還是要能夠掌控他們,否則就如脫韁野馬。好與不好,合適就好。

            2.關(guān)于游戲開發(fā)的技術(shù)含量,還是有的。在我的定義里面,游戲開發(fā)其實(shí)還是一種應(yīng)用。所以相對于那些高深的研究來說,還是相對要技術(shù)含量低,特別是在國內(nèi)一把抄的前提下。就服務(wù)器而言,最基礎(chǔ)的是要提供穩(wěn)定的底層,而后隨著人數(shù)的承載量增長,對于服務(wù)器的架構(gòu)設(shè)計要求也是越來越高的。就管理而言,要保證幾十號人工作如一人,項(xiàng)目管理能力同樣重要。

            3.關(guān)于內(nèi)存管理,得就事論事,合適就好。先用最普通的內(nèi)存分配方式實(shí)現(xiàn),如果不合適了再行優(yōu)化。Premature optimization is the root of all evil.

            4.如果能夠在設(shè)計最初就劃分好模塊,那再好不過,因?yàn)檫@樣就可以把功能細(xì)分了,功能能細(xì)分了,這樣就能夠把任務(wù)更細(xì)的劃分到每一個實(shí)現(xiàn)人身上。但若一開始無法劃分,那就不要劃分,這樣反倒會束手束腳,那就先實(shí)現(xiàn),完成后再重構(gòu)。其實(shí)你說的情況不是一個模塊劃分,接口的問題,而是一個高耦合的情況。“高內(nèi)聚,低耦合”這都沒做到,自然的,就更不要談什么模塊和接口了。如果你們能夠達(dá)到這點(diǎn),就不會亂到一鍋粥了。要堅(jiān)持不斷重構(gòu),其中的好處,你們越到后面,越能夠體會到。
            我這里加載了很多dll,dll會有pdb文件,好像不會卸載。
            擦,我現(xiàn)在是相當(dāng)相當(dāng)?shù)耐纯啵?br>非常的想把VS升級上去了。
            再怎么減少,還是有操作的,只能說是盡量的減少操作量。因?yàn)楝F(xiàn)在的磁盤型硬盤io操作還是非常非常慢的。這種優(yōu)化是非常收益可觀的。

            其實(shí)我現(xiàn)在也是采用的定時保存,開了數(shù)據(jù)庫的連接池。我有經(jīng)常查看數(shù)據(jù)庫的消耗,多半都是消耗在了批量更新上。現(xiàn)在來看,還是可以承受的。

            如果你的MySQL能被查詢所拖垮,那你可以考慮下:能否減少查詢的次數(shù)?如果不可行,那是否應(yīng)該要去分表了?

            現(xiàn)在的確KV型的NoSQL數(shù)據(jù)庫興起了,但是就我直覺來說,很長時間內(nèi)關(guān)系型的SQL數(shù)據(jù)庫是不大可能被淘汰的。
            re: 2011之總結(jié)及2012之展望 楊粼波 2012-01-10 10:28
            @zuhd 現(xiàn)在深圳也很冷,光膀子,幾乎沒人敢這么做。

            @春秋十二月 有的話你其實(shí)不愛聽,我還是要說。你要有一個好的心態(tài),怨天尤人的人不可成大事,甚至連生活都有可能一團(tuán)糟。我也時常咒罵自己,這也許你無法理解,但是我要說:你軟弱給誰看?就算別人給了點(diǎn)點(diǎn)的言語上的安慰,又有什么用呢?能幫助你走出困境嗎?能幫你自立自強(qiáng)嗎?不能。或許你沒有碰到過那種絕望卻又要繼續(xù)前行的時候,所以你不能理解。哥們!天行健,君子以自強(qiáng)不息。比你情況糟的人太多了。就想想貝多芬,想想霍金。不要因?yàn)槲艺f得難聽就激憤難平,我不是想做你的人生導(dǎo)師,這是在分享。

            對于我這里的博文我有著這樣一個原則思想:轉(zhuǎn)載實(shí)用有用的文章,以備日后查閱;原創(chuàng)簡單實(shí)用的文章,不高談闊論。我堅(jiān)信著我碰到的問題,別人也會碰到,記之共享,至少其他人不會因此走彎路。
            用SP可以節(jié)約一點(diǎn)帶寬。不過對于更新數(shù)據(jù)來說,對數(shù)據(jù)庫的消耗確實(shí)是大的。而如果只是查詢,那并不存在任何問題。

            網(wǎng)絡(luò)開銷基本上不是問題,現(xiàn)在部署上多半都是同局域網(wǎng)的,千兆網(wǎng)卡,甚至光纖,很難造成太大的影響。

            數(shù)據(jù)庫主要IO開銷還是在硬盤上,特別是更新數(shù)據(jù)。用memcached,主要也就是減輕磁盤IO的消耗,緩存在內(nèi)存中,減少對磁盤的操作。

            像MySQL這樣級別的數(shù)據(jù)庫,可以把數(shù)據(jù)規(guī)模降低,比如分表這種做法。當(dāng)然,這需要數(shù)據(jù)規(guī)模達(dá)到一定程度。所以我現(xiàn)在還沒有分表。數(shù)據(jù)庫還能承受。

            我現(xiàn)在頭疼兩個東西:
            1.批量更新;
            2.日志的增長。
            日志倒還好,勤快點(diǎn)備份清理就好。
            批量更新,可以緩存數(shù)據(jù)到內(nèi)存當(dāng)中,以期減少寫入頻率,但是,始終還是要寫入的,這個負(fù)載最終還是無可避免的。
            re: Lua 腳本 C++ 封裝庫 LuaWrapper 楊粼波 2012-01-09 17:07
            這里有一個開源項(xiàng)目,名字是一樣的,功能上有啥子不一樣,就不知道了。

            http://code.google.com/p/luawrapper/
            既然能夠想到 “敢問路在前方”,你為何卻看不到這句歌詞的后一句“路在腳下”。

            正如你能夠看到貝多芬,卻不能夠看到貝多芬的內(nèi)心強(qiáng)大?

            正因?yàn)槿绱耍糯偈鼓氵x擇了軟弱,放棄了強(qiáng)大。
            如果你總盯著生活中的倒霉事,會錯過很多好事。----《倒霉愛神》
            不要在這里猶如怨婦一般的矯情,怨天尤人。
            你以為你這樣就能夠改變一切嗎?
            你為什么不慶幸著自己還活著?還有機(jī)會做程序員,還有機(jī)會拿著不到八千塊錢的工資?你為什么不慶幸自己不是流落街頭的流浪漢?
            自己內(nèi)心軟弱,你想做給誰看?誰又能可憐你?誰又能幫你擺脫人生的不如意。
            人生本來就充滿著這樣那樣的灰度,就這么點(diǎn)事情就失魂落魄的。還好意思拿貝多芬來說事,別人貝多芬至少流芳百世,創(chuàng)作了許多偉大的曲子。你呢?在這里怨天尤人,不思進(jìn)取。
            沒口德的罵你:沒用的東西,就這么點(diǎn)事就扛不住了。
            試過,好像沒作用。
            re: Ubuntu下的C/C++環(huán)境搭建 楊粼波 2011-12-18 17:16
            配置一個合適自己的編輯環(huán)境,這個是最麻煩的。別的倒還好。不過,順手的編輯環(huán)境靠的是自己慢慢的摸索,如果摸索出來了,之后再配置的話就僅僅是體力活了。

            事實(shí)上,我一直都擺脫不了VS,都是在Windows下面編輯好,然后再到非Windows平臺下編譯調(diào)試的。
            對于我這等拋棄不了鼠標(biāo)的貨來說,全鍵盤還是頗為不習(xí)慣的。
            更新下來,可惜最近無時間看。
            @小比
            那就是別的服務(wù)沒開。這個錯誤,雖然會啟動的時候老報錯,不過基本功能不影響使用。就是啟動的時候看著不舒服而已。
            我買了一個普通的水壺。用著還行。
            不能夠直接訪問。
            很好,我也正在為這個問題犯愁。
            re: SSH 登錄太慢的解決方法 楊粼波 2011-07-19 20:11
            我今天碰到一個問題是,我配置的DNS服務(wù)器,我這里連接不上,所以,系統(tǒng)沒有DNS服務(wù)器可用,那么,既是意味著解析不到DNS。

            所以,我發(fā)現(xiàn),系統(tǒng)啟動的時候,啟動sshd的時候會很慢很慢,至少有一分鐘的停頓。

            而且,登陸ssh的時候,也非常非常的慢,這是我從前所未見到過的。

            其緣故就是這個DNS解析。
            re: C#, C++, Java性能對比[未登錄] 楊粼波 2011-07-13 13:19
            @Orcas
            一臺服務(wù)器只需要花費(fèi)一次的錢,外加托管的錢,不多的。
            但是程序員的支出是每月的開支。
            你要意識到這一點(diǎn)。
            re: C++雜談[未登錄] 楊粼波 2011-07-11 21:38
            一切遵循木桶效應(yīng),如果項(xiàng)目中有一兩個水平低的,那么整個項(xiàng)目的質(zhì)量都可能會被這一兩個人所拖累。

            如果一個人,掌握不了復(fù)雜的東西。風(fēng)險最小原則,那么就不要使用復(fù)雜的東西,那將會把一切都搞砸掉。

            不論是什么語言,什么技術(shù),在技藝好的人手里,都能玩轉(zhuǎn)自如,而在一個初學(xué)者,一個愚笨者手里,任何東西都會弄得一團(tuán)糟。

            c的好處,對我來說,就是可以平鋪直敘,只要設(shè)計好數(shù)據(jù)結(jié)構(gòu),就可以寫算法了,很簡單。c++這些有oo的語言里面,你卻需要去做一些OO設(shè)計,但是如果設(shè)計好了,那就很舒服了,因?yàn)樗屑?xì)節(jié)都被遮擋住了。

            在我學(xué)習(xí)的那么多語言中,各種語言有各種語言的特色特點(diǎn),同樣也有他們的缺點(diǎn)。語言本身沒有錯,存在的就是有理的。錯的,永遠(yuǎn)都是使用語言的人。

            工欲善其事,必先利其器。沒有那把金剛鉆,就不要攬那瓷器活。
            這個模板,是在編譯時做了一個類型檢查,可以看做是一個斷言:傳入的參數(shù)必須是數(shù)組,否則編譯不過。
            是這樣的。
            不過,大多人都走進(jìn)了這樣一個誤區(qū)。不過看起來是挺容易混淆的。
            嗯好。
            反正不管怎么樣,最優(yōu)的實(shí)現(xiàn)了就行。
            Sweep and Prune的話,4000個物體還能夠接受。
            我曾經(jīng)做碰撞系統(tǒng)的時候,第一階段Sweep and Prune耗費(fèi)的時間幾乎是微乎其微的。
            如果要分離這個業(yè)務(wù)邏輯,我看,在線人數(shù)至少要幾萬以上。因?yàn)椋蛛x意味著,它的計算量已經(jīng)不是單機(jī)能夠承受了。
            最多的耗時,還是花費(fèi)在了網(wǎng)絡(luò)群發(fā)上面。
            re: 觀察者模式[未登錄] 楊粼波 2011-06-20 14:25
            ==!那個,大話我也有買,不過束之高閣,還沒看過……
            我把幾乎市面上所有的設(shè)計模式的書都買了。哈哈,收藏。
            re: 觀察者模式 楊粼波 2011-06-20 12:18
            我還是覺得用報刊訂閱講述比較貼切。哈哈哈,這是經(jīng)典的描述。

            不過,樓主的講述也很生動。哈哈哈,別有風(fēng)味。
            re: TinyXML總結(jié) 楊粼波 2011-06-20 12:14
            RapidXML
            TinyXML
            這兩個都是比較輕量級的。其中RapidXML,boost里面有用到。boost/property_tree里面用到了。因?yàn)椋琑apidXML內(nèi)部自建了一個內(nèi)存池,所以相對來說要比TinyXML要快。實(shí)驗(yàn)證明確實(shí)是如此的。而且,二者之間使用方法上比較相近。
            基于2D的格子是肯定的。
            基本上它是一個碰撞檢測的算法。
            分離出來一個邏輯服務(wù)器倒也是可以的,不過如果開發(fā)周期緊,也沒必要這么做,因?yàn)檫@樣比較耗時。如果設(shè)計得當(dāng),那么今后需要從分離也是容易的。

            AOI挺重要的,設(shè)計得好可以減少不少廣播流量,那可是可以大大的提高游戲服務(wù)器的負(fù)載呀。

            不知道你是什么游戲,及時制還是回合制。根據(jù)業(yè)務(wù)邏輯不同,實(shí)現(xiàn)細(xì)節(jié)上會不同的哦。

            你可以使用Sweep and Prune做第一階段的檢測,進(jìn)行分組,計算量會小很多,然后再進(jìn)行第二階段計算,如果你還有其他的檢測的話,比如圓形區(qū)域。關(guān)于這個算法,這是我查到的一些資料:
            http://www.shnenglu.com/tx7do/archive/2008/01/15/41185.html
            http://www.shnenglu.com/tx7do/archive/2008/01/15/41188.html
            http://www.shnenglu.com/tx7do/archive/2008/01/09/40817.html
            http://www.shnenglu.com/tx7do/archive/2008/01/09/40815.html


            我?guī)湍悴榱艘恍┵Y料:
            http://www.cnblogs.com/corefans/archive/2009/07/23/1529699.html
            http://blog.codingnow.com/2008/11/aoi_server.html
            http://blog.csdn.net/akara/archive/2009/11/28/4897185.aspx
            是你進(jìn)不了教育網(wǎng)吧。
            補(bǔ)充一下,在Windows下面可以用纖程。
            是一種類似coroutine的實(shí)現(xiàn)。
            用coroutine可以實(shí)現(xiàn)。
            不錯,贊一個。
            lua很輕量級;

            python相對重一些,性能要比lua稍要差,不過還是很好用的,畢竟OO支持要好點(diǎn),庫神馬的也多點(diǎn);

            jsp的話,語法接近Java,倒是合適招一些會點(diǎn)Java的人,v8采用的是編譯執(zhí)行的方式,性能還過得去;

            Ruby其實(shí)也很不錯,只不過它的GC有點(diǎn)讓人糾結(jié)。

            Mono嚴(yán)格意義上不算是一種語言,只能說是一種類似.net的平臺。
            @zuhd
            C++的模板是支持遞歸的,是沒問題的。
            Windows的換行方式和UNIX的方式不一樣所導(dǎo)致的。
            Windows是CR+LF的方式。
            而UNIX的是LF的方式,
            而MAC的是CR的方式。

            最后一行回車是最簡單的解決方式,我都已經(jīng)保持了這樣的一個習(xí)慣,盡管我現(xiàn)在一直在做Windows下的開發(fā)。
            re: GUI庫分塊 楊粼波 2011-05-10 12:23
            GUI實(shí)現(xiàn)也就那樣了,都已經(jīng)發(fā)展成熟了。
            無需要對架構(gòu)設(shè)計方面花費(fèi)太多心思,CEGUI,Qt,都是比較好的。

            GUI主要在堆砌GUI的控件上面,耗時耗力。拋開GUI的控件集,其實(shí)質(zhì)性的東西也沒有多少東西。

            GUI核心無非要解決的就是:消息處理、圖形渲染、配置(可編輯)。其中,消息處理和圖形渲染是必須的兩個核心。可編輯,如果時間不允許,不需要也可以,只是體力活比較累人。
            @飯中淹

            和我想的差不多。
            比XML要緊湊一些。
            以前看Jabber的時候,它是用XML序列化,不過,空間代價太大了。

            版本兼容性,這是一個問題。我現(xiàn)在的做法是完全不兼容。只要是協(xié)議版本不一致,就強(qiáng)制性升級更新。我覺得這是一個簡單有效的方法。如果還要兼容協(xié)議版本,做的事情多得多,這樣就得耗費(fèi)大量的時間在上面,而且對穩(wěn)定性有一定的影響。
            @飯中淹

            我沒有嘗試過“類型加數(shù)值的序列化和反序列化”,這個的空間不太好吧?會相對多吃點(diǎn)字節(jié)數(shù)吧?
            @飯中淹
            還有一個,就是數(shù)據(jù)持久化。

            嗯。。。。反正是IO神馬的地方都可以用用。
            我的服務(wù)器事件系統(tǒng)的一些數(shù)據(jù)有的也是用這個傳遞。
            我是從arcemu里面拿出來的,感覺好像和mongos里面的是一樣的。

            還有一種利用std::stringstream做序列化的,倒也還可以。

            用std::vector可以利用STL的內(nèi)存分配器,這個比較省心。
            @finalday

            忘記說明了,此種方式只支持POD類型數(shù)據(jù),這是我描述的缺失。

            字節(jié)對齊,這個是可以指定的,問題倒不大,比如windows可以用:
            #pragma pack(1)

            Google Protocal Buffer使用的是序列化的方式,而且提供了它自己的協(xié)議描述語言,對于跨語言的情況下,是非常好用的。

            這個文章,這段代碼是講解如何封包解包的。當(dāng)然,缺點(diǎn)是,無法應(yīng)付變長的情況。這一切都只是為了“簡單”:套接字用的是阻塞的,不考慮非POD數(shù)據(jù)變長數(shù)據(jù)的情況。
            數(shù)據(jù)還是放到配置里面的好,比如csv,xml。
            放腳本里面可以,但是編輯性不好啊。
            做技術(shù)的,實(shí)事求是是最基本的。
            不盲目崇拜,也不盲目的否定。
            更不能叫罵人身攻擊。

            =。=不過,話說現(xiàn)在這個天氣比較燥熱,是容易爆火氣。我最近涼茶度日。
            std::vector進(jìn)行一次內(nèi)存分配的成本是很高的,需要銷毀掉原有的內(nèi)存塊,創(chuàng)建一塊新的內(nèi)存塊,然后還有進(jìn)行一次拷貝。啟動的時候,使用std::vector::reserve()進(jìn)行預(yù)先分配,成本將會低上許多,即使是超支了,再分配的次數(shù)也是很微小的。這是一種空間換時間的做法。

            像Buffer這種可以預(yù)先知道大致大小的場景,可以使用std::vector::reserve()預(yù)先分配好內(nèi)存塊。而非在使用時實(shí)時的進(jìn)行多次的動態(tài)分配,雖然時間復(fù)雜度不大,但是代價還是是很大的。

            std::vector::capacity() 返回vector所能容納的元素數(shù)量(在不重新分配內(nèi)存的情況下)

            std::vector::reserve() 設(shè)置Vector最小的元素容納數(shù)量。

            做內(nèi)存分配的是STL內(nèi)置的allocator,capacity()本身所取得的是allocator所預(yù)先分配的大小。

            vector::push_back導(dǎo)致vector大小增長過程是這樣的,0 -> 1 -> 2 -> 4 -> 8 -> 16 -> 32 ...
            既是以2的指數(shù)增長,雖然時間復(fù)雜度是o(1),但是還是比較費(fèi),因?yàn)橛袃?nèi)存銷毀,因?yàn)橛袃?nèi)存拷貝,如果是原生數(shù)據(jù)還稍微好一點(diǎn),如果是struct或者class,這是一個惡夢。

            另,std::vector::append()這個方法是不存在的。

            @路人甲
            我并非惡語相向,而是如此的誤導(dǎo)性的東西,是在誤人子弟。此類型文章是面向初學(xué)者的,如果一個引路者誤導(dǎo)他們,這是一件很糟糕的事情。
            還有,0bug是誰?我還真不認(rèn)識。
            re: 博客遷移[未登錄] 楊粼波 2011-04-25 14:15
            額,我現(xiàn)在木有那個精力學(xué)語言哩……
            要不,我也玩玩。
            re: 博客遷移 楊粼波 2011-04-25 09:55
            怎么去弄Lisp去了?
            自己先好好學(xué)一學(xué)STL。
            還capacity()機(jī)制,寒……
            先仔細(xì)看看std::vector吧,
            調(diào)用reserve()才會預(yù)分配內(nèi)存。
            這些都是STL的內(nèi)存分配機(jī)制的問題。
            自己先多學(xué)點(diǎn)東西吧。
            根據(jù)我的觀察,每調(diào)試一次,pdb的句柄就增加一次,調(diào)試多次的話,此解決方案無效,縱使關(guān)閉掉了IDE打開的文件句柄,文件卻無法做寫操作。用VS2003在Windows7上面調(diào)試就是一個巨大的悲劇。
            最好的解決方案是:調(diào)試一次,關(guān)閉一次IDE。
            re: 被delete難倒了[未登錄] 楊粼波 2011-04-01 14:39
            把struct改為class,然后把數(shù)據(jù)private,測試一次看看。排除客戶代碼應(yīng)用上的錯誤。

            當(dāng)然了,也有可能在調(diào)用的時候,被其他地方的錯誤牽連導(dǎo)致這個struct的數(shù)據(jù)被損壞。

            如果牽扯到DLL的話,那有可能是exe和dll兩者之間的版本不一致所導(dǎo)致,DLL的導(dǎo)出地址是用的一個,卻不想exe用了另外一個,所以發(fā)生錯誤,這是有可能發(fā)生的。用VS的編譯器,特別是2003,你需要依照以下步驟重編譯:清理全部(包括dll和exe)->重編。
            @zzy
            這孩子,少見多怪了吧。破解的都這樣,破解需要二進(jìn)制級的修改文件,被殺毒軟件認(rèn)為有毒也是正常的。
            共6頁: 1 2 3 4 5 6 
            国产精品久久久久无码av| 久久精品国产一区二区三区日韩| 亚洲精品乱码久久久久久| 日产久久强奸免费的看| 天天爽天天爽天天片a久久网| 日韩精品久久久久久免费| 日日狠狠久久偷偷色综合免费 | 2021国内精品久久久久久影院| 97久久精品人人做人人爽| 97r久久精品国产99国产精| 嫩草伊人久久精品少妇AV| 亚洲AV无码1区2区久久| 久久综合亚洲欧美成人| 亚洲精品国精品久久99热一| 蜜臀久久99精品久久久久久小说| 77777亚洲午夜久久多喷| 伊人久久大香线焦AV综合影院| 亚洲综合伊人久久大杳蕉| 色8久久人人97超碰香蕉987| 久久精品国产亚洲av麻豆色欲| 久久亚洲精品国产精品| 精品久久久久久久久午夜福利| 99久久人妻无码精品系列| 久久99中文字幕久久| 99久久精品国产一区二区三区| 久久精品亚洲男人的天堂| 亚洲精品美女久久久久99小说 | 国产精品亚洲美女久久久| 精品久久人人爽天天玩人人妻| 久久最新免费视频| 2021国产精品午夜久久| 精品国产VA久久久久久久冰| 欧美久久精品一级c片片| 亚洲精品美女久久久久99小说 | 精品久久久久香蕉网| 国产99久久久久久免费看| 亚洲国产天堂久久综合| 久久精品国产亚洲精品2020| 免费精品99久久国产综合精品| 四虎影视久久久免费| 久久久久亚洲精品无码蜜桃 |