web-dev-qa-db-ja.com

「軽量」とは何ですか?

「軽量」という言葉の技術的な定義、または少なくともいくつかのベンチマークの概念はありますか?

それは「多くのコンピュータリソースを消費しない」という恣意的なものですか?

または、おそらく「アプリケーションは新しいプロセスをフォークしません」(単一のプロセスまたはスレッドのみ)?

技術的な定義がない場合は、何かが軽量であるかどうかにかかわらず、最良の経験則を与える答えを受け入れます。

4
Emanuel Berg

良い定義は、おそらく「古いマシンで使用しようとすると、シームレスに機能する」というようなものだと思います。

たとえば、Pentium IIマシンが最近はおそらく非常に古く、軽量性に焦点を当てるのではなく、「でもそれはすごい」と言う人もいるでしょうが、ウィンドウマネージャー(そしておそらく以前のXFCEのような単純なDE)があります。より肥大化し始めた)これは、上記のマシンでうまく動作します。軽量です。

Firefox、OTOHにはメモリリークがあり、開いているタブをいくつか維持するには数百メガバイトが必要です。 Firefox 2が発売される前に、どこかで軽量化が停止しました。

「多くのコンピュータリソースを消費しない」も別の可能なベンチマークです。この古いマシンベンチマークでは、メモリが通常最大の問題です。LibreOfficeのようなプログラムは、遅くなくても、たとえば、より多くのメモリを必要とします。あなたの平均的なUNIXテキストエディタ(つまり、Emacsvinano、または蝶のようなもの)。

それでも、CPU使用率またはディスクアクセスは考慮すべきもう1つのことです。新しいGTKファイルピッカーが嫌いなのは、 Iの再設計 だけでなく、古いマシンを使用したときに、ファイルスニッフィングを導入しただけであることに気づいたからです。オフにできませんでした。これにより、特に複数のファイルがあるディレクトリで、一部のGTK +アプリケーションがファイルピッカーを開くたびに長い遅延が発生しました。 lsを実行するか、QTファイルピッカーを使用すると、すばやく簡単に実行できます。独自のファイルピッカーを備えたFirefoxもそうです。しかし、たとえば、GTK +ファイルピッカーを備えたFirefoxで、バイナリがファイルを開くように要求すると、/ usr/binが開き、処理に数秒かかります。それ以来、GTK +ファイルピッカーは軽量ではないと言えます。軽量のツールキットを使用すると、集中的に使用できるため、このスニッフィングをオフに切り替えることができます。

「アプリケーションは新しいプロセスをフォークしません」、「(単一のプロセスまたはスレッドのみ)」:どれだけかはわかりませんが、プロセスはスレッドよりも遅くなる可能性があります。スレッド化/いくつかのプロセス(後者が前者より遅い場合でも)を考慮に入れることは良い考えです—私たちがたくさんフォークするプログラムについて話しているのでない限り(たとえば、古き良きbashフォーク爆弾)、応答性を向上させる可能性はありますが、それほど多くのリソースを使用することはありません。起こり得ることの1つは、プログラムが応答性のある場合は軽量であると考える人が、内部で何かを実行するのを数秒間ブロックすると、プログラムは軽量ではないと言うことです。スレッド。1つはUIを処理し、もう1つは内部でこれらのことを実行します。

軽量化は「必要な機能だけ」でも可能です。たとえば、私はマウスやGUIの専門家ではないので、ボタンやコントロールがたくさんあるGUIプレーヤーよりも、ファイルから始めてキーボードショートカットでファイルを表示できるメディアプレーヤーの方が好きです。マウス。 mplayerはGUIバージョンと比較して軽量であると言えます(または、vlcがあると思いますが、たとえばcvlc)。結局、それほど多くのメモリやCPUリソースを必要としない場合でも、「画面のスペースを節約する」と考えると、「軽量」と見なすことができます。

多くのウィンドウマネージャーは、デスクトップ環境と比較して軽量であると言えます。これは、DEがさまざまなことを行うためのいくつかのアプリケーションとツールを提供するのに対し、WMはウィンドウを管理するだけです(実際、DEはコンポーネントの1つとしてWMを持っています)。

いくつかのタスクを実行する小さなコマンドラインツールは、同じことを実行するための多数のメニューを提供するいくつかのGUIアプリケーションと比較して軽量です。特に、1つのコマンドですばやく実行できることを実行するために、メニューとオプションをローミングする必要がある場合はそうです。 (ここでは、古いマシンと同様に偏見があるかもしれませんが、これらのGUIツールは、GUIのために、通常は遅くなります。)

13
njsg

「軽量」には、技術的な定義や、リソースの消費や古いコンピューターでの動作の良さ、または技術的または経験則の意味での絶対的な意味はありません。

しかし、それはそれが非常に明確で具体的な意味を持っているという意味ではありません:

軽量とは使用を検討している他のものよりも軽いを意味します。

したがって、メモ帳はWordよりも軽いため、軽量のテキストエディタです。 JSONは、XMLよりも軽量であるため、軽量のデータ形式です。ネットブックはPCよりも軽いので軽量のPCです。

5
ckhan

「軽量」とは、他のものと比較した場合にのみ意味があります。スレッドはプロセスよりも軽量です。 XfceはGnomeよりも軽量です。パピーリナックスはUbuntuよりも軽量です。

しかし、何が何かを「軽量」にするかについての厳格な規則はありません。一般に、軽量なものはそれほど軽量ではないものを消費しませんが、「何か」は多くのものである可能性があります-CPUリソース、メモリ、ディスクスペースなどです。

2
Johnny

「スレッドは軽量プロセスです」-つまり、それほどオーバーヘッドはありません。

これは、私の情報科学教授がこれまでに使用したその単語の唯一の使用法です。

したがって、より一般的には、リソースの消費量が「通常」よりも少ない場合、「軽量」と見なすことができます。 ckhan彼の答えと同じ方向に進みます。

2
Nils