,我在我的筆記本電腦上運行一個簡單的代碼(Ubuntu的伴侶64位)用簡單的代碼在Solaris平臺沒有垃圾值
# include <stdio.h>
int main()
{
int i,j,l=0,swap,n,k,a[100],b[100],count;
printf("%d", count);
}
正如預期的那樣,這應該會返回垃圾回收價值,並且它做的正是這一點。 我也跑了好幾次。我每次都得到不同的結果,這表明每次都分配了新的內存。輸出是這樣的。
32576
33186
0
29318
0
32111
0
但是,請注意,對於某些情況下,我得到零
現在這個相同的代碼是在Solaris服務器上執行。我在連接到這臺solaris服務器的瘦客戶機上運行它。但是這一次,程序只打印0,不管我執行程序的次數多少。我從另一個帳戶登錄到服務器,但仍然得到了相同的結果。 我認爲solaris機器有某種無法回收的垃圾回收器,但事實並非如此。當我運行另一個程序時,我得到了垃圾值。
# include <stdio.h>
int main()
{
int i;
printf("%d", i);
}
我的問題是,這兩個平臺之間有一些區別還是我只是隨機性的受害者?
垃圾收集標記不符合主題。閱讀http://gchandbook.org/瞭解更多關於GC的信息 –