原创 多線程的內存分配器mt_alloc

A fixed-size, multi-thread optimized allocator 原文URL:http://list.cs.brown.edu/people/jwicks/libstdc++/html/ext/mt_alloc

原创 __mt_alloc源碼分析(3)

struct __common_pool __common_pool是__common_pool_base的基類,它作用就是定義pool_type和實現_S_get_pool函數。   382    template<template <

原创 Hbase Architecture 譯文

原文鏈接:http://wiki.apache.org/lucene-hadoop/Hbase/HbaseArchitecture 引言 本文介紹了HBase,它是Hadoop的一個簡單數據庫。它和Google的Bigtable非常相似,

原创 __mt_alloc源碼分析(6)

class __pool<true> __pool<true>是多線程下的內存池類型。在某些方面,它是__pool<false>的擴展,但是在其他很多方面,它比__pool<false>要複雜得多。__pool<true>的基類也是__p

原创 acovea安裝完全指南

ACOVEA (Analysis of Compiler Options via Evolutionary Algorithm)是一個測試GCC的C和C++編譯器最佳編譯選項的程序。它的主頁是http://www.coyotegulch.

原创 __mt_alloc源碼分析(1)

本文從源代碼級別研究mt allocator的內部實現,使用GCC 4.1.2版本的源碼,主要源文件爲庫文件<ext/mt_allocator.h>和GCC源碼中的“libstdc++-v3/src/ mt_allocator.cc”。

原创 C-Store: A Column-oriented DBMS(1)

 1.介紹 大部分的DBMS實現都採用面向記錄(record-oriented)的存儲方式,即把一條記錄的所有屬性(列)存儲在一起。在這種行存儲(ro

原创 Optimizing Code with GCC

現在的編譯器越來越聰明,功能越來越強,從簡單的函數內聯,到複雜的寄存器分析,一系列代碼革命使程序運行得越來越快。大多數時候,更快比更小重要,因爲磁盤空間和內存都變得便宜了。但是在嵌入式系統裏,更小和更快是一樣重要的,所以把代碼進行優化是非

原创 Using GCC’s C++ Compiler

   本文討論GNU編譯器集合(GCC)中的C++編譯器(g++)的典型用法,主要是指命令行選項的構造。GCC的C++編譯器正常安裝後,可以使用g++

原创 __mt_alloc源碼分析(7)

__pool<true>的初始化 __pool<true>的初始化工作同樣包括2個部分,對象構造和初始化。   356        explicit __pool() 357        : _M_bin(NULL), _M_bin

原创 __mt_alloc源碼分析(8)

__gnu_cxx::lock OK,現在是時候研究lock了。它的定義在GCC源碼的“libstdc++-v3/include/bits/concurrence.h”文件裏,以下簡稱concurrence.h。   <concurren

原创 __mt_alloc源碼分析(2)

struct __per_type_pool_policy  在繼續深入到__common_pool_base和其他pool類裏面之前,我好奇的看了下__per_type_pool_policy的定義,發現一些事情,於是決定先說說它。  

原创 Modern Core Wars

  Core Wars聽起來像是10年輕美國的科幻小說,實際上它是現實中的一個遊戲。Core Wars是計算機程序之間的戰爭遊戲,放下你手中的玩具吧,

原创 __mt_alloc源碼分析(4)

class __pool<false> 終於,我們要開始研究mt allocator裏最核心的東西了。__pool是實際上的內存池類,以前我們介紹的那麼多類,都是在它的基礎上建立起來的“上層建築”。   188    template<b

原创 __mt_alloc源碼分析(5)

__pool<false>的內存分配 本節研究__pool<false>在分配內存時做的事情。回憶一下__mt_alloc:: allocate函數的內容,一般情況下用戶通過某個bin的_M_first[0]可以得到想要的內存,但是在_M