老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務

redis內存分配是怎樣的

本篇內容介紹了“redis內存分配是怎樣的”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設、網(wǎng)站重做改版、寧都網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5建站成都商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設、成都外貿網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為寧都等各大城市提供網(wǎng)站開發(fā)制作服務。

redis內存管理是對malloc系列函數(shù)做了封裝。額外記錄了申請的內存大小信息。

#include 
#include 

static size_t used_memory = 0;
/*
    分配sizeof(size_t)+size大小的內存,前面sizeof(size_t)個字節(jié)記錄本次分配的大小,
    記錄分配的總內存大小,返回用于存儲數(shù)據(jù)的內存首地址,即跨過sizeof(size_t)大小個字節(jié)
*/
void *zmalloc(size_t size) {
    void *ptr = malloc(size+sizeof(size_t));

    if (!ptr) return NULL;
    *((size_t*)ptr) = size;
    used_memory += size+sizeof(size_t);
    return (char*)ptr+sizeof(size_t);
}
// 重新分配內存,ptr是舊數(shù)據(jù)的內存首地址,size是本次需要分片的內存大小
void *zrealloc(void *ptr, size_t size) {
    void *realptr;
    size_t oldsize;
    void *newptr;
    // ptr為空即沒有舊數(shù)據(jù),新申請一塊內存即可,不涉及數(shù)據(jù)遷移
    if (ptr == NULL) return zmalloc(size);
    // 舊數(shù)據(jù)占據(jù)的內存大小
    realptr = (char*)ptr-sizeof(size_t);
    // 得到數(shù)據(jù)部分的內存大小
    oldsize = *((size_t*)realptr);
    // 以舊數(shù)據(jù)的內存地址為基地址,重新分配size+sizeof(size_t)大小的內存
    newptr = realloc(realptr,size+sizeof(size_t));
    if (!newptr) return NULL;
    // 記錄數(shù)據(jù)部分的內存大小
    *((size_t*)newptr) = size;
    // 重新計算已分配內存的總大小,sizeof(size_t)這塊內存仍然在使用,不需要計算
    used_memory -= oldsize;
    used_memory += size;
    // 返回存儲數(shù)據(jù)的內存首地址
    return (char*)newptr+sizeof(size_t);
}

void zfree(void *ptr) {
    void *realptr;
    size_t oldsize;

    if (ptr == NULL) return;
    // 算出真正的內存首地址
    realptr = (char*)ptr-sizeof(size_t);
    oldsize = *((size_t*)realptr);
    // 減去釋放的內存大小
    used_memory -= oldsize+sizeof(size_t);
    free(realptr);
}
// 復制字符串
char *zstrdup(const char *s) {
    size_t l = strlen(s)+1;
    char *p = zmalloc(l);

    memcpy(p,s,l);
    return p;
}

size_t zmalloc_used_memory(void) {
    return used_memory;
}

“redis內存分配是怎樣的”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質量的實用文章!


當前文章:redis內存分配是怎樣的
分享網(wǎng)址:http://www.xueling.net.cn/article/gchpoh.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产亚洲精品久久久久久郑州 | 日本精品一区 | 成午夜精品一区二区三区 | 久久色亚洲| 日本字幕在线观看 | 精品一区二区三区免费在线观看 | 日本天堂视频在线观看 | 国产jizz18高清视频 | 日本夜爽爽一二区 | 国产高潮呻吟久久久 | 四虎在线永久免费观看 | 国产精品欧美激情在线 | 青青草av | 欧美日韩在线视频免费 | 国产精品色婷婷在线观看 | 极品粉嫩饱满一线天在线 | 日本久久久久久久做爰片日本 | 精品视频一区二区在线观看 | 国产中文字幕免费视频 | 羞羞视频日本动漫免费网站 | 国产成人久久精品77777的功能 | 国产干b视频 | 九色com| 久久频这里精品99香蕉 | 亚洲乱码av一区二区三区中文在线: | 中文字幕在线永久在线视频 | 国产在线观看免费人成视频 | 免费在线观看黄片毛片a | 亚洲国产精品无码AV | 在线亚洲97SE亚洲综合在线 | 91tv影院| 高清国产AV一区二区三区 | 香港特级三A毛片免费观看 国产免费久久久久 | 中文字幕精品乱码中文字乱码 | 色无码av在线播放 | 日本tubesex人妻 | 奇米精品视频一区二区三区 | 欧美精品欧美精品系列c | 三级com | 欧美最猛性xxxxx大叫 | 成人免费网站在线观看 |