• <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>
            隨筆 - 2, 文章 - 1, 評論 - 41, 引用 - 0
            數據加載中……
            Python不慢,我們的已經運營的游戲項目就是用Python做的腳本,上層所有邏輯全部都是Python寫的,不管是服務端還是客戶端。
            我個人還是更喜歡簡潔的LUA。
            樓主難道就不知道C++類構造函數不要隨便使用memset去初始化對象嗎?一切問題都是你的memset引起的,跟string沒關系。
            我們的做法:
            做一個更新服務器,用來匹配資源版本號。
            客戶端每次登陸前都先連接更新服務器,如果發現有新的版本,則去文件服務器(http,ftp服務器)下載更新包。之后客戶端本地解壓打包就完成了更新。
            樓主認為peekmessage和OnIdle難道不是一樣的嗎?
            下線通知周圍玩家不應有是服務器的事情嗎?client無論什么方式下線(掉線,宕機....)服務器都應該檢測到。
            A*可以考慮用二叉堆來優化。
            re: 對string類的思考[未登錄] christanxw 2008-06-17 18:58
            類似于MFC CSting的內存結構
            3- 為了避免內存拷貝,可以嘗試關閉SOCKET的發送和接收緩沖區,不過代價是,你需要更多的接收請求POST到一個數據流量比較大的SOCKET,從而保證系統一直可以找到BUFFER來收取到來的數據.


            關閉SOCKET緩沖區一般并不能使性能得到提升。
            re: (C++)一個愚蠢的錯誤[未登錄] christanxw 2008-06-07 22:51
            樓上的,C++里結構就是類,而不是原生的C結構。用memset會把類里的一些必要數據也清零。比如如果類有虛函數,則就有虛表指針,你用memset會把虛函數表指針置為0,這樣你的類還有多態嗎,你的程序還是健壯的嗎
            突破select的FD_SETSIZE限制[未登錄] christanxw 2008-05-24 20:41
            多此一舉。直接重新定義FD_SETSIZE不就是了,何必搞這么復雜。
            多此一舉。直接重新FD_SETSIZE不就是了,何必搞這么復雜。
            re: 網絡編程 心得2[未登錄] christanxw 2008-04-25 08:57
            SO_DONTLINGER的設置將會使得未發送的系統緩沖區數據丟失。更好的還是設置為重用端口。
            只是主角移動而已,為什么要搬移對周圍的固定物件?
            re: 單鏈表逆序輸出[未登錄] christanxw 2008-04-18 23:43
            遞歸絕對是失敗的做法。
            本質原因是你在線程中使用了printf()這樣的非多線程安全的函數。你用它的多線程版本(/MTd或/MDd)就沒問題了,或者你在使用/MLd時對printf加鎖也不會出問題。
            re: 一個微秒級的定時函數 christanxw 2006-09-02 15:20
            Nt以上才支持
            為什么不用分布式編譯工具 Xoreax IncrediBuild?
            google一下就知道了。
            關于是用返回值還是異常一直都是個令人煩惱的話題。
            不過我認為自己開發的程序如果只是自己使用的話,用返回值是最好的(當然適當的加上日志記錄最好了)。因為你自己知道什么時候作錯誤處理。如果是開發庫給別人使用,用異常可能比較好,因為你不知道你的客戶該怎么去處理錯誤,所以應該把錯誤處理的主動權交給客戶。
            所有的游戲都是C/C++
            內存映射文件才是進程間共享的根本!
            re: std::string一個極其隱晦得問題 christanxw 2006-04-18 20:29
            Dll的出口函數最好是用標準的C類型。
            #include <windows.h>
            #include <cstdio>
            #include <iostream>

            unsigned long cryptTable[0x500];
            const int HASH = 0;
            const int HASH_A = 1;
            const int HASH_B = 2;

            void InitCryptTable()
            {
            unsigned long seed = 0x00100001, index1 = 0, index2 = 0, i;
            for(index1 = 0; index1 < 0x100; index1++)
            {
            for(index2 = index1, i = 0; i < 5; i++, index2 += 0x100)
            {
            unsigned long temp1, temp2;
            seed = (seed * 125 + 3) % 0x2AAAAB;
            temp1 = (seed & 0xFFFF) << 0x10;
            seed = (seed * 125 + 3) % 0x2AAAAB;
            temp2 = (seed & 0xFFFF);
            cryptTable[index2] = (temp1 | temp2);
            }
            }
            }

            unsigned long Hash(char *pStr, unsigned long dwHashType)
            {
            unsigned char *key = (unsigned char *)pStr;
            unsigned long seed1 = 0x7FED7FED, seed2 = 0xEEEEEEEE;
            int ch;

            while(*key != 0)
            {
            ch = toupper(*key++);

            seed1 = cryptTable[(dwHashType << 8) + ch] ^ (seed1 + seed2);
            seed2 = ch + seed1 + seed2 + (seed2 << 5) + 3;
            }
            return seed1;
            }

            struct HashItem
            {
            unsigned long m_nHashKeyA;
            unsigned long m_nHashKeyB;
            bool m_bExist;
            };

            int main()
            {
            __int64 t1, t2;
            GetSystemTimeAsFileTime( (LPFILETIME)&t1 );

            InitCryptTable();
            FILE* fread = fopen("c:\\email.txt","r");
            FILE* fwrite = fopen("c:\\emailnew.txt","w+");

            HashItem *hashTable = new HashItem[780000];

            char line[256] = "";
            fgets(line,255,fread);
            while(!feof(fread))
            {
            int nStart = Hash(line,HASH) % 780000;
            int nPos = nStart;
            if(!(hashTable[nPos].m_bExist
            && hashTable[nPos].m_nHashKeyA ==Hash(line,HASH_A)
            && hashTable[nPos].m_nHashKeyB == Hash(line,HASH_B)))
            {
            hashTable[nPos].m_nHashKeyA = Hash(line,HASH_A);
            hashTable[nPos].m_nHashKeyB = Hash(line,HASH_B);
            hashTable[nPos].m_bExist = true;
            fprintf(fwrite,"%s",line);
            }

            fgets(line,255,fread);
            }

            GetSystemTimeAsFileTime( (LPFILETIME)&t2 );
            printf( "經過了%I64d.%04I64d毫秒\n", (t2-t1)/10000, (t2-t1)%10000 );
            fclose(fread);
            fclose(fwrite);
            delete [] hashTable;

            std::cin.get();
            }

            耗時343毫秒。很不錯了。呵呵。Ptyong也是C寫出來的,C/C++效率是完全可以比Pyton更快的,就看怎么實現算法了。在總多的腳本語言中Python是比較慢的一個了。
            re: C++代碼靜態分析工具-Prefast christanxw 2006-03-28 18:32
            哪里可以下載?
            怎么不做個例子看看?
            同意一樓
            外加C++網絡編程,比如ACE
            re: C++的類型萃取技術 christanxw 2005-11-15 16:47
            《泛型編程與STL》及《STL中文版》中對類型萃取解釋的很好,摟主總結的不錯
            美文一篇!
            re: C++的靜態分派技術 christanxw 2005-11-15 16:36
            這在STL中有著廣泛的應用
            是很好的輔助工具,但裝了這個,同時打開VS和金山詞霸2005時,發現VS會自動被關閉,無意中發現的。
            re: 找一個工作好難 christanxw 2005-09-22 08:41
            游戲公司
            re: 簡單的變量交換 christanxw 2005-09-19 19:30
            這樣也可以:
            #include <iostream>
            using namespace std;

            int main()
            {
            int Number1 = 23;
            int Number2 = 33;

            cout<<Number1<<"\n"<<Number2<<endl;

            Number1 = Number1 + Number2;
            Number2 = Number1 - Number2;
            Number1 = Number1 - Number2;

            cout<<Number1<<"\n"<<Number2<<endl;

            return 0;
            }

            當然樓主的更猛,不會產生溢出,我這個方法可能產生溢出,呵呵_^_
            久久人人爽人人爽人人片av高请| 国产精品久久久香蕉| 婷婷综合久久中文字幕| 99热都是精品久久久久久| 久久精品国产福利国产琪琪| 久久无码国产| 久久人人爽人人爽人人av东京热| 一本色道久久99一综合| 国产精品久久久久久久久鸭| 91精品国产91久久久久久蜜臀| 久久人人爽人人爽人人片AV麻豆 | 国产精品久久波多野结衣| 国产精品va久久久久久久| 久久久这里有精品| 国产精品久久网| 亚洲精品综合久久| 东京热TOKYO综合久久精品| 久久久艹| 久久大香香蕉国产| 久久久久无码国产精品不卡| 午夜精品久久久久久毛片| 久久综合狠狠综合久久激情 | 亚州日韩精品专区久久久| 久久精品欧美日韩精品| 久久无码精品一区二区三区| 久久精品国产亚洲av麻豆小说| 国产精品久久久天天影视香蕉| 怡红院日本一道日本久久 | 国产精品久久久亚洲| 久久WWW免费人成—看片| 久久久久久亚洲Av无码精品专口| 女同久久| 精品久久久久中文字幕一区| 久久亚洲精品成人AV| 亚洲伊人久久成综合人影院 | 久久久久久无码国产精品中文字幕| 久久人人爽人人爽人人片AV麻烦| 国产农村妇女毛片精品久久| 99精品国产在热久久无毒不卡| 精品国产99久久久久久麻豆| 久久www免费人成精品香蕉|