以下给出的代码取自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