2016-05-03 5 views
0

私が知っているように、全体のメモリ管理は自動的にいくつかのケースでは少し非効率的であるかもしれないガベージコレクタを実行しているに建てで行われているため、Javaは、メモリを管理するための任意の方法を持っていません。どのようにJavaでゴミを作るのを避けることができますか?

http://www.coralblocks.com/

私は、彼らはまったくゴミをせずに動作するJavaツールとライブラリを作っていることを伝え、このウェブサイトを、発見しました。私はそれがいかに可能なのかについて論理的な説明をしたいと思っています。

+0

あなたが持っている場合は、特定の問題を教えてください。 –

+3

はい。それはマーケティングと呼ばれています。流行語の数を数えます。 – Tunaki

+2

あなたの質問は悪いことではありません(彼らは結局、かなり馬鹿げた主張をしています)が、ここには属しません。おそらくプログラマー.seがもっと適切かもしれません。 –

答えて

4

は実際には、CoralFIXについての記事は述べています:

ゴミゼロ:すべてのコーラルブロックのコンポーネントはクリティカルパスでGC ゼロごみを生み出します。まったくゼロのゴミを言って同じではありません

。また、比較的小さなクラスのアプリケーションでのみ(Coralの場合)達成できます。メッセージベースのシステムでは、メッセージバッファ内のバイトのインプレースマッチングによってすべての作業を行うことができます。通常のデータ構造または(ほとんどの)標準ライブラリクラスを使用する必要があるとすぐに、オブジェクトを生成します。コーラルブロックで

そして...

我々は、構文言語としてのJavaを使用しています。

つまり、コーラルブロックのアプリケーションプログラマはJavaコードを書きません!


同じことをするコードを記述することはできますか?

理論上はい、実際はそうではありません。Java SEライブラリ(およびサードパーティ製のライブラリ)の機能を多く置き換える必要があります。プログラミング言語。

1 - あなたのアプリケーションがシンプルで、Java SEと外部ライブラリの依存関係が最小限であれば、それは実現可能でしょう。しかし、それほど簡単なアプリケーションはほとんどありません。

+0

彼らはウェブサイトで、複雑な取引告知、FIXエンジン、および無駄な高性能httpサーバーを開発したと主張しています。 JDKの標準ライブラリや他のサードパーティのlibの代わりに[CoralBits](http://www.coralblocks.com/index.php/category/coralbits/)を使用しているようです。 – TakeSoUp

4

それは完全にゴミを作成停止することはできません、それは特定のタスクを除き、非常にメモリ制約システムでゴミの作成を最適化しようとするのは時期尚早です。多くのタスクがある種の割り当てを引き起こします。

しかし、ごみは減少したがによって除去されないことができる。

  • プールといくつかのオブジェクト参照を再利用します。
  • オフヒープデータの大きなブロックを割り当て、それらを手動で管理します。
5

http://www.coralblocks.com/index.php/2015/10/is-coralfix-the-fastest-and-easiest-to-use-fix-engine/

すべてコーラルブロック成分はクリティカルパスにおけるGC ゼロごみを生成します。

私の推測です。事前に割り当てられたバッファー、Stringオブジェクトはありません。彼らの言うとおり:

コーラルブロックでは、Javaを構文言語として使用しています。私たちのライブラリにはの外部依存性がありませんであり、JDK標準ライブラリに依存していません。 CoralFIXを使用すると、クリティカルパスを完全に制御できます。

2

Javaでゴミを避けることはできませんが、それを減らすことはできます。良いと効率的なコードは、通常、使用せずに任意の変数を残しません。あなたがゴミを出さないようにする一つの方法は、あなたが未使用のままにしておくものに注意を払うことです。

関連する問題