青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

ACE中ACE_Message_Block的緩存處理

基于我前一篇文章《基于ACE實現的一個內存池》的代碼,這里是應用,有問題不要打我。。。

// MessageBlockManager.h
/**
 *    @date 2007.10.28
 *  @author PeakGao <peakgao163@163.com>
 
*/

#ifndef OM_MESSAGEBLOCKMANAGER_H
#define OM_MESSAGEBLOCKMANAGER_H

#include 
<ace/thread_mutex.h>
#include 
<ace/synch_traits.h>
#include 
<ace/message_block.h>

#include 
"MemPoolT.h"

namespace om{

    
class MessageBlockManager
    
{
        typedef CachePool
<ACE_SYNCH_MUTEX>    MyCachePool;

        MyCachePool            mBufPool;    
/// 緩存ACE_Data_Block的緩沖區
        MyCachePool            mDBPool;    /// 緩存ACE_Data_Block對象本身,由于不能默認構造,所以沒有用ObjectPool模版
        MyCachePool            mMBPool;    /// 緩存ACE_Message_Block對象本身,由于不能默認構造,所以沒有用ObjectPool模版
        ACE_SYNCH_MUTEX*    mMutex;        /// 線程同步

    
public:
        
static MessageBlockManager* instance();

        MessageBlockManager();
        
~MessageBlockManager();

        
/// 初始化參數
        void create(size_t bufSize, size_t objCount);

        
/// 清除緩沖池
        void clear();

        
/// 分配一個消息塊
        ACE_Message_Block* alloc();

        
/// 釋放指定的消息塊
        void free(ACE_Message_Block* mb);
    }
;

}
 // namespace om

#endif // OM_MESSAGEBLOCKMANAGER_H


// MessageBlockManager.cpp
/**
 *    @date 2007.10.28
 *  @author PeakGao <peakgao163@163.com>
 
*/

 
#include 
"MessageBlockManager.h"

namespace om{

    
    MessageBlockManager
* MessageBlockManager::instance()
    
{
        
static MessageBlockManager* mbm = 0;
        
if (mbm == 0)
            mbm 
= new MessageBlockManager();

        
return mbm;
    }


    MessageBlockManager::MessageBlockManager()
        : mMutex(NULL)
    
{
    }


    MessageBlockManager::
~MessageBlockManager()
    
{
        clear();
    }


    
void MessageBlockManager::clear()
    
{
        
if (mMutex)
        
{
            mBufPool.clear();
            mDBPool.clear();
            mMBPool.clear();

            delete mMutex;
            mMutex 
= NULL;
        }

    }


    
void MessageBlockManager::create(size_t bufSize, size_t objCount)
    
{
        
if (!mMutex)
            mMutex 
= new ACE_SYNCH_MUTEX();

        mBufPool.create(bufSize, objCount, mMutex);
        mDBPool.create(
sizeof(ACE_Data_Block), objCount, mMutex);
        mMBPool.create(
sizeof(ACE_Message_Block), objCount, mMutex);
    }


    ACE_Message_Block
* MessageBlockManager::alloc()
    
{
        
void* buf = mBufPool.alloc();

        ACE_Data_Block
* db = ::new (mDBPool.alloc()) ACE_Data_Block(mBufPool.getBlockSize(), 
            ACE_Message_Block::MB_DATA, static_cast
<const char*>(buf), 00, ACE_Message_Block::DONT_DELETE, 0);

        ACE_Message_Block
* mb = ::new (mMBPool.alloc()) ACE_Message_Block(db, ACE_Message_Block::DONT_DELETE);
        
        
return mb;
    }


    
void MessageBlockManager::free(ACE_Message_Block* mb)
    
{
        
// 不要調用對象的release方法
        mBufPool.free(mb->base());

        ACE_Data_Block
* db = mb->data_block();
        db
->~ACE_Data_Block();
        mDBPool.free(db);

        mb
->~ACE_Message_Block();
        mMBPool.free(mb);
    }



}
 // namespace om

posted on 2007-10-28 20:38 PeakGao 閱讀(3964) 評論(5)  編輯 收藏 引用 所屬分類: C++技術

評論

# re: ACE中ACE_Message_Block的緩存處理 2007-10-28 22:14 Minidx全文檢索

ACE執行效率方面怎么樣?  回復  更多評論   

# re: ACE中ACE_Message_Block的緩存處理[未登錄] 2007-10-29 08:06 PeakGao

@Minidx全文檢索

執行效率不錯,當然比你用純API寫的差,畢竟為了框架的合理和跨平臺封裝,導致了不少的函數調用開銷,但這些對于應用來講可以忽略,除非你用在某些實時行特別高的地方  回復  更多評論   

# re: ACE中ACE_Message_Block的緩存處理 2007-10-29 10:18 Minidx全文檢索

謝謝!  回復  更多評論   

# re: ACE中ACE_Message_Block的緩存處理[未登錄] 2007-10-31 13:39 erran

大致看了看ACE,總感覺他太大了,不怎么想用,不過實在是很全面....  回復  更多評論   

# re: ACE中ACE_Message_Block的緩存處理 2008-03-14 23:29 happychui

這個類有內存泄露,原因是用全局的instance,用的時候申請了,但沒自動delete
把instance()改如下
MessageBlockManager* MessageBlockManager::instance()
{
static MessageBlockManager mbm;
return &mbm;
}  回復  更多評論   

<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

導航

統計

常用鏈接

留言簿(9)

隨筆分類(67)

隨筆檔案(65)

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲乱码国产乱码精品精可以看| 麻豆精品视频在线观看| 亚洲欧美在线观看| 亚洲一区二区三区精品动漫| 这里只有精品电影| 亚洲一二三区精品| 午夜在线不卡| 久久国产精品99国产精| 麻豆成人av| 亚洲国产视频直播| 亚洲国产成人av在线| 亚洲青色在线| 亚洲欧美一区二区原创| 久久久精品tv| 欧美日韩亚洲高清| 伊人久久综合97精品| 9色精品在线| 久久亚洲精品视频| 亚洲乱码国产乱码精品精可以看| 亚洲精品自在在线观看| 午夜精品久久久久久久99黑人| 久久一区二区三区av| 欧美天天在线| 亚洲国产成人不卡| 香蕉精品999视频一区二区| 免费在线亚洲| 亚洲永久视频| 欧美69wwwcom| 国产午夜精品在线| 中文一区二区在线观看| 欧美成人一区二区在线| 亚洲欧美一级二级三级| 欧美裸体一区二区三区| 精品成人一区| 欧美在线播放视频| 一区二区欧美亚洲| 99精品视频一区二区三区| 99国产精品久久久久久久久久 | 久久色在线观看| 欧美午夜女人视频在线| 在线观看中文字幕亚洲| 久久爱www久久做| 亚洲天堂第二页| 欧美日韩一区二区欧美激情| 国产亚洲欧美色| 久久综合九色欧美综合狠狠| 亚洲香蕉成视频在线观看| 欧美日韩国产成人在线91| 亚洲大片精品永久免费| 久久久久久亚洲精品中文字幕| 性欧美在线看片a免费观看| 欧美日韩喷水| 午夜国产不卡在线观看视频| 亚洲乱码视频| 国产精品自拍小视频| 久久久久一区二区| 蜜臀av一级做a爰片久久 | 久久精品久久99精品久久| 国产亚洲欧美激情| 欧美黑人多人双交| 欧美日韩国产色综合一二三四| 午夜精品美女久久久久av福利| 亚洲女性裸体视频| 亚洲国产精品久久久久婷婷老年| 亚洲福利视频在线| 久久午夜精品一区二区| 国产精品老牛| 午夜精品久久久久| 一区二区三区国产盗摄| 国产欧美日韩激情| 日韩一级黄色片| 99精品热视频| 欧美超级免费视 在线| 性做久久久久久免费观看欧美 | 久久久精品tv| 国产欧美婷婷中文| 亚洲美女精品成人在线视频| 亚洲高清成人| 毛片一区二区三区| 亚洲电影在线免费观看| 精品动漫3d一区二区三区免费| 一区二区三区视频在线观看| 91久久久久| 欧美日韩国产在线播放| 欧美激情免费在线| 9色精品在线| 欧美日韩一区在线| 中文日韩在线视频| 久久久久久久高潮| 亚洲福利小视频| 欧美精品七区| 亚洲女人天堂av| 久久夜色精品国产| 亚洲精品久久视频| 欧美午夜不卡视频| 久久精品盗摄| 日韩亚洲视频在线| 久久伊人亚洲| 亚洲免费视频网站| 国语精品中文字幕| 欧美亚洲第一区| 亚洲视频在线观看视频| 国产麻豆综合| 欧美日韩综合网| 久久色中文字幕| 亚洲男同1069视频| 亚洲精品国产拍免费91在线| 久久aⅴ国产欧美74aaa| 99re这里只有精品6| 亚洲第一中文字幕| 激情小说另类小说亚洲欧美| 欧美日本韩国一区二区三区| 久久久精品国产99久久精品芒果| 日韩视频一区二区三区在线播放| 久久久久久穴| 久久伊人免费视频| 久久综合九色九九| 久久综合99re88久久爱| 欧美在线播放| 久久中文精品| 欧美激情国产高清| 亚洲国产日韩在线一区模特| 欧美激情一区二区三区在线视频观看 | 亚洲国产一区二区三区在线播 | 中文精品视频| 亚洲欧美精品在线观看| 午夜日韩电影| 欧美凹凸一区二区三区视频| 牛牛影视久久网| 亚洲人成网站色ww在线| 99成人在线| 久久国产精品久久久久久电车| 性欧美精品高清| 欧美夫妇交换俱乐部在线观看| 欧美裸体一区二区三区| 国产精品日韩欧美| 美女主播一区| 国产精品久久91| 91久久线看在观草草青青| 日韩视频在线你懂得| 久久精品国产99精品国产亚洲性色| 亚洲欧美国产高清va在线播| 欧美一区三区三区高中清蜜桃| 欧美大片在线观看一区| 午夜视频在线观看一区| 欧美日产国产成人免费图片| 黄色成人小视频| 久久久www成人免费毛片麻豆| 亚洲欧洲一区二区三区久久| 香蕉成人伊视频在线观看| 欧美午夜不卡影院在线观看完整版免费 | 亚洲国产成人久久综合一区| 亚洲精品影院| 免费成人性网站| 亚洲国产美女精品久久久久∴| 欧美电影免费观看高清完整版| 国产欧美视频一区二区| 开元免费观看欧美电视剧网站| 欧美另类久久久品| 一本色道久久综合一区| 亚洲精品麻豆| 欧美日韩国产色站一区二区三区| 亚洲电影免费在线 | 国产亚洲毛片在线| 老司机亚洲精品| 欧美国产日韩亚洲一区| 99在线精品视频在线观看| 一区二区日韩精品| 国产日韩欧美一区在线| 老色批av在线精品| 欧美女人交a| 久久久精品日韩| 欧美久久成人| 久久久久国产精品一区| 久久九九久精品国产免费直播| 欧美视频日韩| 午夜精品久久久久久久久久久 | 欧美黄色一区| 国产精品劲爆视频| 亚洲第一中文字幕在线观看| 欧美日韩不卡合集视频| 另类激情亚洲| 国产区日韩欧美| 99精品视频免费观看| 亚洲风情亚aⅴ在线发布| 亚洲视频一区二区在线观看| 黄色亚洲在线| 久久久精品国产一区二区三区| 亚洲小说欧美另类婷婷| 欧美成人免费网站| 欧美二区视频| 亚洲大胆美女视频| 另类春色校园亚洲| 欧美va天堂va视频va在线| 国产日韩欧美视频在线| 午夜欧美电影在线观看| 久久精品国产久精国产爱| 欧美亚洲成人精品| 亚洲综合精品自拍| 久久伊人亚洲|