[問題] 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