<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 1  文章 - 37  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿(16)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    test

    搜索

    •  

    最新評論

    20100819
    完成以精武館平臺為中心的跨域登錄模塊。
    精武館圍棋譜頁面重新設計

    20100810
    一個重要的計劃正在實施!

    精武館第一個生產版本,與2010-08-08上線


    20100808
    圍棋打譜加入聲音
    修復圍棋幾個bug

    20100807
    圍棋模塊新增功能:
    1. 進入點目模式后,啟動Timer,2分鐘后自動完成點目,每30秒提醒一次
    2. 完成點目時,有30秒的時間選擇是否接受點目結果,30秒后自動選擇繼續走棋
    3. 一個請求(求和,點目,悔棋),如果被拒絕,則本輪無法再發起該請求


    20100802
    精武館已經通過所有重要測試:
    1. 客戶端:
        1). 無內存泄露
        2). 即便是IE6,也不會很卡
        3). 主流瀏覽器兼容
    2. 服務器端:
        1). 以房間為單位的服務器集群,可容納至少10萬人同時在線
        2). 在百萬級數據下所有查詢操作均在0.2秒以內(未測試千萬數據)
        3). 緩存,全文檢索均工作正常,并能很好的緩解數據庫壓力


    20100801
    Hibernate Search大數據手動建立索引
    數據庫:Mysql
    64萬條數據,創建索引結果:
    2010-08-01 17:33:48,522   INFO org.hibernate.search.impl.SimpleIndexingProgressMonitor:74 - 643600 documents indexed in 340634 ms
    2010-08-01 17:33:48,522   INFO org.hibernate.search.impl.SimpleIndexingProgressMonitor:77 - Indexing speed: 1889.418 documents/second; progress: 99.99922%
    2010-08-01 17:34:10,149   INFO org.hibernate.impl.SessionFactoryImpl:935 - closing

    創建索引的代碼:
    FullTextSession fullTextSession = Search.getFullTextSession(getSession());
            fullTextSession.createIndexer().
            batchSizeToLoadObjects(
    40).
            threadsForSubsequentFetching(
    2).
            threadsToLoadObjects(
    2).
            cacheMode(CacheMode.IGNORE)
            .startAndWait();

    配置:

     

    <property name="hibernateProperties">
                
    <props>
                    
    <!--   MySQL  -->
                    
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>

                    
    <prop key="hibernate.show_sql">false</prop>
                    
    <prop key="hibernate.hbm2ddl.auto">update</prop>
                    
    <prop key="hibernate.current_session_context_class">thread</prop>
                    
    <prop key="hibernate.jdbc.fetch_size">30</prop>
                    
    <prop key="hibernate.jdbc.batch_size">1000</prop>
                    
    <!-- The second level cache -->
                    
    <prop key="hibernate.cache.use_second_level_cache">true</prop>
                    
    <prop key="hibernate.cache.use_query_cache">false</prop>
                    
    <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
                    
    <prop key="hibernate.cache.provider_configuration_file_resource_path">/ehcache.xml</prop>
                    
    <!-- Fulltext search -->
                    
    <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>
                    
    <prop key="hibernate.search.default.indexBase">/var/lucene/indexes</prop>
                    
    <prop key="hibernate.search.default.indexwriter.batch.max_buffered_docs">5000</prop>
                    
    <prop key="hibernate.search.default.indexwriter.batch.max_merge_docs">5000</prop>
                    
    <prop key="hibernate.search.default.indexwriter.transaction.ram_buffer_size">5000</prop>
                    
                
    </props>
            
    </property>




    <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
            
    <property name="driver" value="com.mysql.jdbc.Driver" />
            
    <property name="driverUrl"
                value
    ="jdbc:mysql://192.168.1.100:3306/dev_weiqipu_com?useCursorFetch=true&amp;useServerPrepStmts=true&amp;useUnicode=true&amp;characterEncoding=UTF8" />
            



    jvm參數:

    -XX:MaxPermSize=128m
    -XX:PermSize=128m

    -Xmn100m 
    -Xms512m
    -Xmx512m


    由于用的筆記本,因此各項參數都不高,整個重建過程,jvm內存使用率一直徘徊在250m左右


    20100726
    一段oracle造數據的存儲過程

    create or replace
    PROCEDURE "data_gen" IS
    buid 
    varchar2(32);
    huid 
    varchar2(32);
    BEGIN

    For   m   In   1..100   Loop

    select dbms_random.string('X',32into buid from dual;
    select dbms_random.string('X',32into huid from dual;

    For   i   In   1..1000   Loop

    INSERT INTO big_test 
        (gID,
        bUID, 
        hDATE, 
        hUID, 
        )
        
    VALUES
        ((
    select dbms_random.string('X',32from dual),
        buid, 
        sysdate, 
        huid, 
        );
    End   Loop;
    commit;

    End   Loop;

    END "data_gen";


    20100725
    配置好“精武館客服”(support # jingwuguan.com)郵箱
    一段mysql造數據的存儲過程
    SET GLOBAL log_bin_trust_function_creators = 1
    DROP FUNCTION IF EXISTS rand_string;
    DELIMITER $$
    CREATE FUNCTION rand_string(n INT)
    RETURNS VARCHAR(255)
    BEGIN
        
    DECLARE chars_str VARCHAR(100DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        
    DECLARE return_str VARCHAR(255DEFAULT '';
        
    DECLARE i INT DEFAULT 0;
        
    WHILE i < n DO
            
    SET return_str = CONCAT(return_str,SUBSTRING(chars_str , FLOOR(1 + RAND()*62 ),1));
            
    SET i = i +1;
        
    END WHILE;
        
    RETURN return_str;
    END $$
    DELIMITER $$

    DELIMITER $$
    DROP PROCEDURE IF EXISTS `VACCOUNT_PARAMETER_PROC` $$
    CREATE PROCEDURE `VACCOUNT_PARAMETER_PROC`()
    BEGIN

      
    DECLARE iloop SMALLINT DEFAULT 0;
      
    DECLARE iNum MEDIUMINT DEFAULT 0;
        
      
    DECLARE gid VARCHAR(32DEFAULT 'a4028ebb812999ae220b';
      
    DECLARE gameId VARCHAR(32DEFAULT '';
      
    DECLARE Cur_account CURSOR FOR SELECT member_id FROM account;
      
      
    WHILE iNum<=10 DO
        START 
    TRANSACTION;
        
          
    WHILE iloop<=10 DO
          
          
    SET gameId = CONCAT(gid,rand_string(12));
          
        
        
    INSERT INTO dev_weiqi_jingwuguan_com.jwg_game_instances 
        (id, )
        
    VALUES
        (gameId, )

            
            
    SET iloop=iloop+1;
          
    END WHILE;
        
        
    COMMIT;
        
    SET iloop=0;
        
    SET iNum=iNum+1;
      
    END WHILE;
    END $$
    DELIMITER ;

    CALL `VACCOUNT_PARAMETER_PROC`();


    20100724
    1. 郵件服務器搭建完成;
    2. 完成3個郵件模板:
    注冊后的歡迎與激活郵件
    密碼重置郵件
    激活碼重置郵件
    3. 已測試郵箱:
    126, gmail, hotmail, 2個企業內部郵箱


    20100712
    加強事務處理
    配置二級緩存
    增加一些小細節,比如個人信息修改,圍棋耍賴投訴等

    20100615
    頁面方面的性能測試,主要是測試當房間中玩家較多的情況下,高密度的頁面dom操作對性能的影響。
    房間數據:房間包含50張桌子,每張桌子2個座位,房間可容納最多130個玩家。
    1. 開啟150個線程,每個線程模擬一個玩家,分別每隔2秒和5秒進行一次進入/離開房間
    2. 開啟150個線程,每個線程模擬一個玩家,分別每隔2秒和5秒進行一次坐下/站起
    測試瀏覽器:ie8, firefox3.6
    ie的性能表現比較糟糕,FF還比較平穩,總體來說,在真實的環境中,即使房間人數爆滿,瀏覽器表現應該會比較平穩。

    20100521
    添加jquery element的remove替代方法,在child div較多的情況下,可提升性能數十倍。

    20100516
    解決內存泄露問題(sIEve-0.0.8 + ie)
    1. Test Case: 進入房間,刷新頁面100次,memory usage曲線平穩,無dom leak
    2. Test Case: 進入/離開 房間100次(頁面不刷新),memory usage曲線平穩,無dom leak
    3. Test Case: 坐下/站起(打開/關閉圍棋窗口) 100次(頁面不刷新),memory usage曲線平穩,無dom leak

    jquery的ajax調用代碼段有內存泄露(jquery1.4.2)
    try {
                
    var oldAbort = xhr.abort;
                xhr.abort 
    = function() {
                    
    if ( xhr ) {
                        oldAbort.call( xhr );
                    }


                    onreadystatechange( 
    "abort" );
                }
    ;
            }
     catch(e) { }


    20100504
    視頻:如何搭建本地平臺開發環境
    http://video.jingwuguan.com/public/builddevplatform/builddevplatform.html

    20100503
    介紹精武館的視頻制作完成
    part1: http://video.jingwuguan.com/public/intro/part1web/part1web.html
    part2: http://video.jingwuguan.com/public/intro/part2web/part2web.html

    20100418
    打包環境已創建完成

    20100330

    開發者論壇:https://groups.google.com/group/jingwuguan 

    Google Groups
    Subscribe to 精武館開發者論壇
    Email:
    Visit this group


    20100316
    平臺的抽象層代碼基本完成了,接下來是做一些項目管理的配套設施,包括清晰的模塊劃分,SVN,jira,論壇,mail等
    其實這是一件非常有趣的事。

    20100225
    簡單的注冊登錄步驟必然能吸引更多玩家,因此精武館將允許玩家使用以下網站的ID登錄:
    不過首次登錄還是需要填寫一些必要信息。
    1. 使用google帳號
    2. 使用msn帳號 - https://live.azure.com
    3. 使用yahoo帳號 - http://developer.yahoo.com/social/updates/
    4. 使用人人網帳號

    20091230
    精武館開始向開放式游戲平臺轉型,比原計劃要早,因為一個人開發進度太慢了,于是必須提前轉型。
    精武館將為開發者提供以下資源:
    1. 環境文檔,介紹精武館核心架構,介紹如何搭建開發環境和調試環境
    2. java-api文檔,如何擴展使用精武館提供的各種java api
    3. javascript-api文檔,如何擴展使用精武館提供的各種javascript api
    4. 開放“圍棋”模塊源代碼以供開發者參考
    5. 以maven依賴包的形式提供java api包

    開發者可以根據以上資源自由開發游戲模塊,由精武館付費購買其源代碼。

    20091223
    利用googlecodes創建靜態資源的cache捷徑,表情和頭像等圖片資源,可以放到googlecodes上面(不是Hosting,兩者區別很大),然后在nginx中做代理和緩存配置,如下:
    proxy_cache_path  /var/www/cache levels=1:2 keys_zone=img-expression-cache:8m max_size=32m inactive=30d;  
    proxy_temp_path 
    /var/www/cache/tmp;

    server {
            listen       
    80;
            server_name  static.mydomain.com;
        expires 30d;
        access_log off;

        location 
    / {
            proxy_pass      http:
    //yours.googlecode.com/svn/static/;
                proxy_cache img
    -expression-cache;      
            proxy_cache_valid  
    200 302 304  30d;
            proxy_cache_valid  
    404      1m;
            }
        }


    20091222
    javascript優化基本完成,IE8下所有操作不超過100ms

    20091221
    javascript優化:
    優化前:build游戲大廳40個座位IE花費280ms,FF花費160ms
                    build空圍棋棋盤IE花費350ms,FF花費200ms
    優化后:build游戲大廳60個座位IE和FF均花費60ms左右
                    build空圍棋棋盤IE和FF均花費30ms左右

    目前javascript已接近產品響應級別。

    在VM虛擬機下跑的IE6,測試效果不佳,有待優化。



    20091217
    圍棋游戲功能已經做好了,等待測試,接下來計劃2周內完成“觀戰”模式和開放服務——“打譜”。

    20091210
    開放式服務策略:
    以精武館為例,目前可提供的開放式服務有
    1. 棋類游戲打譜,客戶網站只需引入精武館相關棋類游戲模塊的打譜js,即可以在自己的網站上建立一個即時打譜的窗口。
    2. 即時通信頻道,客戶網站只需引入精武館的及時通信js,即可以在自己的網站上建立一個類似在線客服的即時通訊窗口。

    20091209
    精武館首個即將開放的API——圍棋打譜api
    它將幫助圍棋愛好者網站提供基于javascript/ajax的在線打譜功能,為圍棋愛好者提供更便捷的研究棋譜的方式。
    例如: 某網站 http://www.go.com是一個棋譜搜集網站,它需要使用精武館的圍棋api實現在線打譜功能,只需要引入精武館的goapi.js,并以某棋譜的http絕對路徑為參數,創建并啟動apijs中的打譜對象,就可以實現在線打譜功能。

    20091124
    技術上已經可以實現以游戲模塊或房間為單位的分布式多機集群,基于web的游戲大廳完全可以模擬出基于客戶端的游戲大廳。
    2篇Cometd的性能測試報告:
    http://wiki.exoplatform.com/xwiki/bin/view/WS/Cometd+Cluster+Bench
    http://cometdaily.com/2008/01/07/20000-reasons-that-comet-scales/

    20091122
    1. C-S通信做了些優化,目前只要能較快的打開國內各大門戶網站首頁,那么玩精武館就會很流暢。
    2. 采用cookie來判斷登錄,不過由于后臺使用的是memcached作為用戶對象的集群緩存,目前可以提供的同步方法為:當用戶狀態改變時,及時更新緩存對象。
    3.  頁面增加了一些元素,游戲結束時的計分部分(包含道具系統)已經差不多完工了,不過道具與積分/玩家的對象關系還需進一步改善。
    4.  暫時取消google搜索框,它對頁面的打開速度有影響。

    20091120
    1. 加入后臺虛擬貨幣,積分,道具的對象系統
    2. 網速過慢的客戶端,會導致Cometd重置與服務器之間的連接,產生新的ClientId,導致Channel無效,也就是收不到來自服務器的p2p消息
    3. 精武館將能嵌入開放式平臺中(例如開心網或是Google Wave),使得玩家可以在它們之中任何一個平臺進入精武館游戲。

    20091115
    1. 優化ack通訊
    2. 加入在線人數統計
    3. 加入google自定義搜索,它將為站內搜索提供幫助


    20091112
    1. 修正了游戲窗口ID查找的bug
    2. 玩家圍棋落子后,先顯示落子再提交ajax請求
    3. 修正了斷開連接時多層彈出框
    4. 取消了一個客戶端與服務器端的通道

    20091111
    圍棋:添加Pass
    添加Ack擴展,可以支持離線消息以及server端丟包重發
    修正了Cometd-js中Reload時Ack的一處小BUG

    20091110
    當游戲大廳的Cometd連接時才設置session過期時間,而不是登錄時,這樣可以防止登錄后進入大廳之時由于網速過慢而導致session過期,并且延長過期時間為20秒
    取消了ajax request的10秒超時限制,因為在網速較慢的情況下,它的影響似乎很惡劣。
    添加了與服務器失去連接時的提示,由于客戶端是無狀態的,可以任意刷新。
    圍棋模塊需要先實現SGF導入,這樣可以方便測試點目,精武館圍棋的點目效果與QQ圍棋的點目效果差不多。
    研究圍棋的SGF讀寫功能,發現應該為玩家提供這樣一個服務:可以創建自己的棋譜庫,可以方便的管理并使用它們,而該棋譜庫又是精武館的開放資源。


    20091109
    由于要限制一個賬號同時只能登錄一個實例,目前使用的是session,10秒后過期。實際上也可以用cookie,用戶登錄時生成一個隨機ID,存入memcached,不過這樣就沒有辦法知道用戶何時關閉瀏覽器,不過這是一個代替session集群的最佳方案,可以考慮。
    本周的開發計劃為:完成圍棋模塊的基礎功能,包括:SGF讀入,點目,PASS,認輸。
    posted on 2009-11-10 22:24 Phrancol Yang 閱讀(825) 評論(1)  編輯  收藏

    FeedBack:
    # re: 精武館開發日志 2010-04-07 15:41 周磊
    GOOD  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 毛片网站免费在线观看| 久久国产乱子伦免费精品| 午夜a级成人免费毛片| 亚洲网站在线免费观看| 99视频免费播放| 亚洲第一成年网站大全亚洲| 999任你躁在线精品免费不卡| 久久久久亚洲AV无码专区首| 久操视频免费观看| 亚洲精品在线免费观看视频| www.免费在线观看| 国产亚洲精品影视在线| 日本人护士免费xxxx视频| 免费一级毛suv好看的国产网站| 免费中文字幕在线观看| 中文字幕免费在线播放| 久久亚洲国产精品| 无码国产精品一区二区免费 | 国产美女被遭强高潮免费网站| 日韩亚洲综合精品国产| 亚洲人成无码网站久久99热国产| 亚洲免费视频一区二区三区| 亚洲αv在线精品糸列| 永久在线免费观看| 韩国亚洲伊人久久综合影院| 亚洲色WWW成人永久网址| 99re免费在线视频| 亚洲精品国产综合久久久久紧| 免费播放特黄特色毛片| 免费看成人AA片无码视频吃奶| 亚洲成a人片7777| 亚洲av日韩av欧v在线天堂| 久久福利青草精品资源站免费| 亚洲精品第五页中文字幕| 天天摸天天操免费播放小视频| 一级特级aaaa毛片免费观看| 亚洲精品欧洲精品| 国产精品嫩草影院免费| 黄色短视频免费看| ass亚洲**毛茸茸pics| 国产亚洲av人片在线观看|