2016-05-03 73 views
0

據我所知,Java沒有任何管理內存的方法,因爲整個內存管理是由內置的自動運行垃圾回收器完成的,在某些情況下可能會有點低效。如何避免在Java中產生垃圾?

http://www.coralblocks.com/

我發現這個網站,它告訴他們正在一個Java工具和庫,其未做任何垃圾的一切工作。我想得到一些關於如何可能的合理解釋。

+0

請分享任何具體問題,如果你有.. –

+3

是的。這就是所謂的營銷。計算熱門詞彙的數量。 – Tunaki

+2

你的問題並不是一個壞的問題(畢竟他們做出了一個相當荒謬的主張),但它不屬於這裏。也許程序員.se可能更合適。 –

回答

4

事實上,關於CoralFIX文章說:

零垃圾:所有的珊瑚塊組件產生零垃圾在關鍵路徑的GC

這與說零垃圾完全不一樣。只有在相對較小的應用中才能實現(珊瑚)。即基於消息的系統,您可以通過就地匹配消息緩衝區中的字節來完成所有工作。只要你需要使用正常的數據結構或者(大多數)標準庫類,你將會生成對象。

而且......

在珊瑚塊,我們使用Java作爲一種語法語言。

換句話說,珊瑚塊應用程序員不寫Java代碼!


是否有可能編寫代碼來做同樣的事情?

理論上是的,但實際上可能不需要。您需要替換Java SE庫(和第三方庫)的大量功能,以便將您的應用程序更好地置換爲不同的編程語言。

1 - 我想,如果您的應用程序很簡單並且具有最小的Java SE和外部庫依賴性,那麼這樣做可行。但很少有不平凡的應用程序就是這樣。

+0

他們在自己的網站上聲稱,他們已經開發出了複雜的交易算法,FIX引擎和高性能的HTTP服務器,這些服務器都是無垃圾的。看起來他們正在使用[CoralBits](http://www.coralblocks.com/index.php/category/coralbits/)而不是JDK標準庫或任何其他產生垃圾的第三方庫。 – TakeSoUp

4

完全停止創建垃圾是不可能的,現在試圖優化垃圾創建,除了某些特定的任務和內存受限的系統之外,還爲時過早。大量的任務會導致某種分配。重新使用一些對象引用

  • 池和:

    然而,垃圾可被降低,但不被消除。

  • 分配堆外的大塊數據並手動管理它們。
2

你不能避免在java中製作垃圾,但你可以減少它。良好和高效的代碼通常不會在沒有使用的情況下留下任你可以避免造成垃圾的方法之一是注意你未使用的東西。

相關問題