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

            chenglong7997

            intern

            1.軟件p4, vs, vim, cscope. 
            fix step:
            先reproduce
            再確定出現(xiàn)問題的函數(shù),行號
            分析原因
            fix 


            vs中遠(yuǎn)程調(diào)試,指定ip,port, 同時在遠(yuǎn)程主機上要同意遠(yuǎn)程調(diào)試,接受指定user。要保證code與exe文件一致。
            設(shè)定斷點,觀察debug輸入,與預(yù)想的有什么不同。觀察bt,thread stack 找到出現(xiàn)問題的函數(shù)或者行號。

            p4 中的check out, commit, diff, opened, edit, sync命令和作用。
            submit step:merge changlist (from branch) (to branch)
            check diff
            resolve
            make (so make sure the code is right)
            submit (add comments)
            set the bug state in Web

            vim:熟悉了各種命令。

            cscope,ctag:在linux中瀏覽代碼很有用,可以找到function definition, struct definition, calling function, called function. 

            在一個目錄中建立cscope database, 可以再主目錄建立,之后只在這里使用cscope,就能找到全部引用。

            linux, lib 文件的使用。 有.a 和.o的lib文件。

            2.code style.
            文件命名要有層次感。例如,snape_webserver_msg.c, snape_webserver_thread.c, snape_webserver_log.c, snape_client_msg.c,,,
            函數(shù)命名也要有層次感, 例如,snape_webserver_msg_set_connection(), snape_webserver_thread_create(),snape_client_request_get_pic().
            變量命名也要有層次感和意義。
            出錯處理的專門函數(shù)。
            debug level:debug,info, basic, webserver, client,,,

            3.函數(shù)的定義與瀏覽。
            call graph definition.
            函數(shù)名字最好能夠顯示出函數(shù)調(diào)用的graph。
            使用hash table 保存大量類型的數(shù)據(jù)。
            使用內(nèi)容的md5作為這個內(nèi)容的id,就可以完美配合hash table。

            4.thread, process
            windows 中, object , event, cs
            cs同步速度較快,但是使用cs容易進(jìn)入deadlock狀態(tài)。因為在等待進(jìn)入cs時,無法設(shè)定超時值。
            互斥對象與內(nèi)核對象屬于內(nèi)核對象,利用內(nèi)核對象進(jìn)行線程同步,同步速度較慢,但這種方式可在多個進(jìn)程的各個對象之間進(jìn)行同步。
            event分為人工重置與自動重置事件,兩者在細(xì)節(jié)上,不同。

            5.cache implementation
            client端可以使用類似os中,cache 與 虛擬內(nèi)存的方法。b_modified表示是否經(jīng)過更改,從而是否需要更新。每次只去拿新的東西。
            而在server端,可以使用內(nèi)容的MD5判斷是否需要處理來到的內(nèi)容,可以用多層次的MD5來更加去improve performance。例如用總體的md5,和各個部分的md5.
            先判斷總體MD5,如果改變,在去檢查部分md5.如果沒有改變,就整個都可以丟棄,不去處理。
            design is very important. 代碼的執(zhí)行過程要完全依賴design。

            6.select function
            異步select, 可以讓線程不去busy waiting。
            但是如果需要傳輸內(nèi)容,需要trigger signal,讓它不用等到timeout,就能發(fā)送數(shù)據(jù)。

            7.timestamp/timeout/ ts_diff
            可以用ts_diff去同步時間。
            使用timeout來防止任意操作的無限制等待
            使用timestamp來決定哪一個更新。不要用counter。(無法同步,無法控制單一性)

            8.xml api
            在傳送數(shù)據(jù)方面,可以使用xml

            9.performace/memory usage
            mm tools.






























            posted on 2012-09-02 01:16 Snape 閱讀(1280) 評論(0)  編輯 收藏 引用 所屬分類: CTCI_C++

            導(dǎo)航

            <2012年9月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            統(tǒng)計

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            my

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品无码专区免费 | 久久青青草原精品影院| 亚洲精品白浆高清久久久久久| 伊人久久成人成综合网222| 一本一本久久aa综合精品| 成人免费网站久久久| 色综合久久综合网观看| 久久婷婷五月综合成人D啪 | 久久亚洲精品成人AV| 93精91精品国产综合久久香蕉 | 亚洲午夜久久久影院伊人| 色偷偷888欧美精品久久久| 久久久久久久女国产乱让韩| 精品久久久久中文字幕日本| 少妇久久久久久被弄到高潮 | 91久久精品国产免费直播| 久久人人爽人人爽人人爽| 国产精品伊人久久伊人电影| 欧美精品国产综合久久| 成人国内精品久久久久影院VR| 97精品伊人久久大香线蕉| 精品久久久久一区二区三区| 久久精品午夜一区二区福利 | 色欲综合久久躁天天躁| 国产成人精品久久亚洲高清不卡 | 亚洲精品美女久久777777| 热久久最新网站获取| 精品一久久香蕉国产线看播放 | 久久天天躁狠狠躁夜夜网站| 一本久道久久综合狠狠躁AV| 91精品久久久久久无码| 色偷偷888欧美精品久久久| 99精品国产在热久久无毒不卡| 一本一本久久A久久综合精品 | 亚洲七七久久精品中文国产| 久久91这里精品国产2020| 91久久精品国产免费直播| 91亚洲国产成人久久精品网址| 蜜桃麻豆www久久| 91性高湖久久久久| 四虎久久影院|