为了研究我的应用程序中的内存构建(Windows平台上的本机代码) 我做了以下
1)迭代中的测试用例
2)每次迭代后转储UMDH然后在某些迭代之间进行差异 看看调用堆栈中内存的模式。 我需要一些关于以下数据的帮助,我需要解释
a)在差异日志的最后,我找到了类似的东西 总增加== 86928要求+ 38080开销= 125008 究竟是什么开销在这里? 如果我将所有分配相加并扣除deallocations,我会得到一个接近#requested数量的数字。我不能说明开销数。
b)需要的另一个帮助是调用堆栈 下面是调用堆栈的一部分的快照
sqlncli11!PrepOrPrepExecQuery+159
sqlncli11!SQLExecute+32D
ODBC32!SQLExecute+342
sscdms80!CSSODBCSqlCursor::DoExecuteStmt+B4C (m:\some filename, 2903)
sscfdm!CSSLockSqlCursor::DoExecuteStmt+11A (m:\Another filename, 5237)
sscfdm!CSSSqlCursor::Execute+129 (m:\yet Anotherfilename, 5685)
sscfdm!CSSSqlObj::Execute+D86 (m:\Filename.cpp, 27500)
sscfom!CSSBusComp::SqlExecute+3A (m:\someotherfile.cpp, 28872)
With each function name there is an offset attached (a HEX number) example sscfom!CSSBusComp::SqlExecute+3A (here 3A is the offset).
该偏移的意义是什么?我没有找到任何解释这个的文件。
c)在该间隔期间,perfmon捕获的私有字节中的delta如何与调用堆栈中的delta相关联?