簡體   English   中英

我們如何知道要設置多少堆?

[英]How do we know how big to set the Heap?

我正在嘗試將Java轉換為中間語言,並且正在弄清楚中間語言的工作方式。

我有原始的Java代碼: http : //cs.ucla.edu/classes/spring11/cs132/cs132/mj/Factorial.java

而且我有中級代碼表示形式(VAPOR): http : //cs.ucla.edu/classes/spring11/cs132/kannan/vapor-examples/Factorial.vapor

這是另一組:在Java中: http : //cs.ucla.edu/classes/spring11/cs132/cs132/mj/BubbleSort.java

在VAPOR中: http : //cs.ucla.edu/classes/spring11/cs132/kannan/vapor-examples/BubbleSort.vapor

我的問題是,所有的VAPOR代碼都具有t.0 = HeapAllocZ(x) (其中xint )。 我想知道轉換器如何確定堆大小需要為x Factorial.vapor ,將其設置為4 BubbleSort.vapor ,將其設置為12

謝謝!

看起來HeapAlloc是基於要創建的結構的大小(假定412是字節值)。 我認為查看數據結構使用的變量,並計算這些變量求和的字節數將為您分配數量。

如果您注意到,Java版本的階乘沒有數據成員。 Java版本的BubbleSort具有兩個4字節的整數(總共8個字節)。

假定對象的“開銷”是4個字節(指向類對象的指針的大小)。

因此,階乘的對象大小為4,而BubbleSort的對象大小為12。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM