以下給出的代碼取自LevelDB。爲了更好的理解,我給了兩個代碼塊。我無法理解發生了什麼。LevelDB --- C++中的代碼
ThreadState是一個結構體,我寫在這裏是爲了方便讀者。
struct ThreadState {
int tid; // 0..n-1 when running in n threads
Random rand; // Has different seeds for different threads
Stats stats;
SharedState* shared;
ThreadState(int index)
: tid(index),
rand(1000 + index) {
}
};
下面的標記代碼是類Benchmark的對象實例嗎?下面標記的代碼中發生了什麼?
void Run() {
PrintHeader();
Open();
const char* benchmarks = FLAGS_benchmarks;
while (benchmarks != NULL) {
{
//code ommitted
}
// Reset parameters that may be overriddden bwlow
***void (Benchmark::*method)(ThreadState*) = NULL;*** // What does this code line mean? // Benchmark is a class.
bool fresh_db = false;
int num_threads = FLAGS_threads;
if (name == Slice("fillseq")) {
fresh_db = true;
method = &Benchmark::WriteSeq;
}
如果需要的話,我可以給出基準的詳細實施。
非常感謝您的幫助!
非常感謝您的回答。它確實幫了我很多。只有當生活像stackoverflow一樣好! –
@NewUser - 樂於助人:) – StoryTeller