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

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 閱讀(3962) 評論(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年1月>
31123456
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| 国产一级一区二区| 在线欧美视频| 亚洲欧美日韩在线不卡| 欧美中文字幕在线视频| 美女黄毛**国产精品啪啪 | 欧美大尺度在线观看| 欧美激情视频在线免费观看 欧美视频免费一 | 久久婷婷亚洲| 亚洲高清影视| 亚洲视频一区在线| 女人香蕉久久**毛片精品| 国产精品乱码一区二三区小蝌蚪| 欧美日韩一区二区在线| 国产一区二区观看| 亚洲欧美视频在线| 91久久精品美女| 久久久久久69| 狠狠色丁香久久综合频道| 亚洲欧美日韩天堂一区二区| 欧美国产日韩xxxxx| 久久精品亚洲一区二区三区浴池| 欧美日韩免费一区| 亚洲九九精品| 亚洲国产一区二区三区青草影视| 亚洲欧美国产视频| 国产麻豆精品久久一二三| 亚洲摸下面视频| 亚洲欧美精品中文字幕在线| 久久乐国产精品| 亚洲国产精品va在线看黑人| 久久最新视频| 欧美 亚欧 日韩视频在线| 国产欧美日韩亚洲精品| 亚洲午夜av在线| 亚洲福利视频三区| 欧美日韩黄色大片| 香蕉久久一区二区不卡无毒影院| 一本色道久久综合亚洲91| 国产精品毛片在线| 久久全国免费视频| 欧美激情综合五月色丁香小说| 亚洲人成亚洲人成在线观看| 一区二区三区久久精品| 国产丝袜一区二区| 亚洲精品欧洲| 亚洲大胆美女视频| 午夜精品久久久久影视 | 妖精成人www高清在线观看| 国产精品久久久免费| 亚洲福利国产精品| 亚洲精品中文字幕有码专区| 欧美日韩福利视频| 美女视频黄 久久| 国产欧美日韩视频一区二区| 最新日韩av| 亚洲国产精品久久91精品| 久久福利电影| 欧美自拍偷拍| 国产欧美另类| 午夜精品一区二区三区四区| 99精品久久免费看蜜臀剧情介绍| 欧美在线观看视频在线| 欧美精品七区| 美女国产一区| 日韩视频中文| 欧美视频网址| 亚洲一区中文| 欧美一区二区视频网站| 欧美网站在线| 欧美一区二区在线免费观看| 午夜宅男久久久| 韩国av一区二区三区在线观看| 午夜欧美不卡精品aaaaa| 久久久成人精品| 在线免费观看日本欧美| 久久久水蜜桃| 在线看无码的免费网站| 欧美日韩成人网| 欧美在线观看一区二区| 亚洲电影在线免费观看| 亚洲视频每日更新| 国产美女诱惑一区二区| 久久婷婷蜜乳一本欲蜜臀| 欧美激情一区二区三区在线视频| 日韩一级精品| 国产自产精品| 欧美视频精品在线观看| 久久久综合香蕉尹人综合网| 亚洲午夜视频| 亚洲精品在线看| 欧美激情一区二区三区不卡| 午夜精品福利视频| av成人免费在线观看| 亚洲国产日本| 悠悠资源网久久精品| 国产视频在线观看一区二区三区| 蜜桃精品久久久久久久免费影院| 国产精品99久久久久久久女警| 欧美va天堂在线| 久久一二三区| 久久久久一区二区三区| 欧美专区亚洲专区| 国产在线视频欧美| 国产精品久久久久久久久久ktv | 国产精品成人av性教育| 久久综合999| 欧美chengren| 欧美视频一区二区三区| 欧美色精品天天在线观看视频| 欧美日本韩国一区二区三区| 欧美日韩情趣电影| 国产精品视频专区| 伊人天天综合| 宅男精品导航| 久久另类ts人妖一区二区| 欧美成人一区在线| 日韩午夜av电影| 久久精品人人做人人爽电影蜜月| 榴莲视频成人在线观看| 国产精品久在线观看| 精品动漫一区二区| 国产欧美一区二区视频| ●精品国产综合乱码久久久久| 亚洲精品视频免费观看| 午夜在线一区| 日韩网站在线观看| 久久这里只精品最新地址| 国产精品免费小视频| 亚洲人成网站影音先锋播放| 欧美在线黄色| 亚洲一区二区精品在线观看| 久久综合给合| 黄色亚洲大片免费在线观看| 亚洲无吗在线| 99riav国产精品| 欧美久久电影| 亚洲精品网址在线观看| 你懂的国产精品| 久久网站热最新地址| 久久国产主播| 亚洲高清资源| 另类亚洲自拍| 久久国产精品久久久久久| 欧美视频日韩视频| 午夜精品在线观看| 性欧美video另类hd性玩具| 国产精品一区一区三区| 亚洲欧美99| 欧美诱惑福利视频| 亚洲福利视频在线| 亚洲国产精品一区二区www| 欧美精品免费视频| 午夜一区二区三视频在线观看| 午夜精品久久久久久久99樱桃| 国产一区二区| 亚洲欧洲日本mm| 国产欧美日韩亚州综合| 久久亚洲一区二区| 欧美日韩国产影片| 午夜精品久久久久| 久久人体大胆视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲欧美精品一区| 999在线观看精品免费不卡网站| 在线综合亚洲| 在线一区二区三区四区| 久久久久久久一区| 亚洲欧美激情在线视频| 欧美激情中文不卡| 蜜臀av国产精品久久久久| 国产精品成人v| 欧美激情精品久久久久久大尺度| 欧美午夜不卡视频| 亚洲片在线资源| 最新高清无码专区| 奶水喷射视频一区| 欧美大片在线观看一区二区| 国外成人网址| 麻豆成人在线播放| 亚洲婷婷免费| 亚洲美洲欧洲综合国产一区| 老巨人导航500精品| 黑人中文字幕一区二区三区 | 久久精品国产999大香线蕉| 亚洲国产精品一区二区www在线| **网站欧美大片在线观看| av成人黄色| 亚洲清纯自拍| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美激情免费观看|