[问题] Memory Usage

楼主: victoret (戏言~)   2012-03-02 12:47:23
其实跟前两篇里提到的差不多
tm_usage 这个 library 里面
Time usage 感觉起来很正常(其实是因为出来的结果看起来和理论相去不远啦)
但是 memory usage 的部分一整个就是很奇怪...
目前试过的状况如下
===
tmusg.periodStart();
tmusg.getPeriodUsage(stat);
cerr << stat.vmSize(或是 vmPeak) << endl;
===
在这中间 " 什么都没有做 " 的状况之下
显示出来的值就会是 11768(大约 11 M 左右)
假如在中间做了 merge 那些动作的话
也只有在 32000 的 case 之下(无论 IS 还 MS)
会出现 118xx 的值,其他比较小的 case 根本毫无反应
而且微妙的是 IS 的用量还略略比 MS 大
这显然是有问题的
然而 sorting 出来的结果却是正确的,time usage 也是正确的
感觉起来是 memory usage 的 " 使用方法 " 上似乎有点怪怪的?
(不过因为看不懂 .cpp 里的 code...所以也不知道要怎么改)
想请问一下这个 memory usage 到底要如何使用才能得出合理的结果呢?
至于 vmDiff...个人也试了几次,不过在 .h 和 mergesort.doc 里面
都没提到这个到底是什么...而且上上篇也有有人提过了
就没有去测试看看了
Memory usage 这个部分似乎跟往年的相当不一样...在 demo 里面也没有出现相关范例
感觉有点摸不著头绪...
作者: wintercobra (wintercobra)   2012-03-02 20:25:00
在demo/lib/底下有个tm_usage.h,最末有解释用法照tm_usage.cpp的内容看来,他是这样用的:一开始先让他开始计算(tmusg.periodStart();),这时他会存一笔内存的状态,之后随时要看一下内存状态时就用tmusg.getPeriodUsage(&stat); 这时的内存减去一开始start时的内存用量,就是所谓的vmDiff。

Links booklink

Contact Us: admin [ a t ] ucptt.com