Z3统计中的内存使用单位是多少?

时间:2014-07-29 03:28:29

标签: z3 smt

在z3统计中测量内存使用量的单位是多少?是MB还是KB?

记忆的确切含义是什么?是执行期间的最大内存使用量还是所有分配的总和?

1 个答案:

答案 0 :(得分:2)

它是执行期间最大堆大小的近似值,它通过cmd_context.cpp中的以下函数添加到统计对象中:

void cmd_context::display_statistics(...) {
    statistics st;
    ...
    unsigned long long mem = memory::get_max_used_memory();
    ...
    st.update("memory", static_cast<double>(mem)/static_cast<double>(1024*1024));
    ...
}

因此它以MB为单位。这只是一个近似值,因为计数器在每次分配时都不会更新;请参阅memory_manager.cpp中的以下注释:

// We only integrate the local thread counters with the global one
// when the local counter > SYNCH_THRESHOLD 
#define SYNCH_THRESHOLD 100000