私はJava EEフレームワークを学んでいますが、勉強中に「軽量」アプリケーションまたはクラスという用語に出くわしました。この用語は何を指していますか? このアプリケーションが軽量アプリケーションであると人々はどのように言っていますか? アプリケーションを「軽量」にする基準は何ですか?
5 に答える
合意された使用法はありませんが、通常は次のような考えを呼び起こします
- 他のライブラリや API への依存が少なくて済みます
- 構成とセットアップが少ない
- 機能が少ない代わりに高速になる可能性があります
良い例は、「軽量」Spring フレームワークを古い EJB 標準と比較することです。Spring は、アノテーションを使用してビジネス ロジックをコードに挿入するというアイデアと、オート ワイヤリングを導入しました。一方、EJB は多くの構成を必要とし、JNDI API に依存しており、アプリケーション サーバー内で実行する必要がありました。
私が偏見を持っていると思われないように、EJB 3.1 では大幅に改善されました。
軽量とは、通常、メモリ フットプリント、インストール サイズ、または起動時間のことです。平均的なフレームワークの実行に 100MB 以上かかるのに対し、1 つのフレームワークの実行に 30MB しか使用しない場合、そのフレームワークは軽量であると主張できます。同様に、平均 5 秒の実行に比べて 0.5 秒しかかからない場合、同じ主張を行うことができます。ただし、通常は軽量を定義します。
軽量とは、不必要なメモリ/オブジェクト、またはより一般的なリソース消費を回避するソリューション/テクニックを意味します。通常は、よりインテリジェントなソリューションです。
(ただし、より優れた高速なアルゴリズム(最悪の場合の動作が優れている)は、軽量化とは呼ばれません)
通常、「軽量」という言葉は、リソースの消費量 (CPU、メモリ、ネットワーク帯域幅、ファイル ハンドルなど) が少ないことを指していると思います。
しかし、他の誰かが非常に肥大化したアプリケーションを作成するかもしれませんが、そのための単純な API を作成し、それを「軽量」と宣言します。
それが何を意味するのか疑問に思うのは正しいですが、明確な答えを得ることはまずありません.
軽量は、より単純な API を提供するため、または外部依存関係を少なくするために、意図的に機能を欠いているライブラリを記述するためにも使用できます。たとえば、タグ、ID、またはクラスによって要素を取得できるが、独自の XPath クエリを記述できない HTML パーサーは軽量と呼ばれる可能性があります。特に、ユーザーが多くのライブラリや追加のライブラリをインストールする必要がない場合それを使用するために。
他の人が言ったように、軽量ライブラリは一般に、同じ理由でより少ないリソース消費も提供します。