※ 引述《timmylin (再也不寫程式了...)》之銘言:
: 不知道是哪裏寫錯了,跑到第三個Output 370GAT(163)時
: 記憶體使用就高達40幾MB,照這樣下去一定會爆炸....
: (第四個最大...)
: 我cache開60000多,但是就算是60000多的cache也不至於
: 佔到數十MB(16 x 60000 byte),唯一的可能就是uniquify
: 做不好才會產生多餘的BddNodeInt,但是進入Hash唯一性
: 不是只有
: if (t.isNegEdge()){
: isNegEdge = ~isNegEdge;
: t = ~t;
: e = ~e;
: }
: 處理嗎???(或者我還有盲點)
為什麼這是進入Hash唯一性?
: 因為如果standize不好頂多只是時間慢,不會佔去記憶體阿
: 不好意思請老師和各位同學看看我這個情行
Anyway, you can create a global variable "hashNodeCount" to see how many
nodes are inserted into the hash. Print out once a while (e.g. every 1000
insertion). Make sure the memory is from Hash table (i.e. too many
BddNodeInt).
However, I doubt not. Maybe there's something wrong about your recursion,
where you create too many local variables...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.134.63