z3 - Z3统计中内存使用的单位是什么?

标签 z3 smt

z3统计中内存使用量的单位是什么?是MB还是KB?

内存到底是什么意思?是最大内存使用量还是执行过程中所有分配的总和?

最佳答案

它是执行期间最大堆大小的近似值,它通过 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

关于z3 - Z3统计中内存使用的单位是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25007806/

相关文章:

haskell - SBV lib 似乎在解决 SAT 问题时变慢了,如何使用 picosat/miniSAT?

constraints - 最小独立集

python - 无法在 z3 python 上验证 : ! m_var2expr.empty()

python - 如何使用 z3 Python API 对 bv-redand 进行编码?

optimization - 仅在优化场景中将断言软限制为可满足性可能吗?

z3 - 如何在 Z3 中表示符号求和?

Z3:找到所有满意的模型

verification - 用于位向量算术的 SMT 求解器

z3 - 整数变量的最小值和最大值

c++ - 从 z3 模型读取 z3 数组的 func interp