2

ウイルス対策プログラムがディスクまたはファイルをスキャンし、メモリ消費量を抑えるために使用する手法を知りたいです。ユーザーのアクティビティにも影響しません。

低メモリ消費でディスクスキャンを実現できるアプローチを探しています。

4

6 に答える 6

10

彼らはしません。私が知っているすべてのスキャナーは大量のメモリを使用し、パフォーマンスに影響を与えます。

于 2009-07-29T13:19:39.887 に答える
3

私はほとんどの人に、ウイルス対策ソフトウェアのメモリやCPUの消費量がこれまでにないことに同意します。しかし、ここに私の頭から離れたいくつかのアイデアがあります:

  • ユーザーが開いたファイルのみをスキャンします。ユーザーが開いたファイルのみをスキャンします。
  • すべてのファイルではなく、実行可能ファイルやスクリプトなどの危険なファイルのみをスキャンします。
  • スキャンは通常、ファイルをハッシュし、既知のウイルスハッシュに対してハッシュをハッシュすることによって行われます。メモリ使用量を最小限に抑えるために、既知のハッシュをディスクに保持し、必要に応じて検索することができますが、それは非常に遅くなります。最速の方法は、それらをすべてRAMに保持し、OSがそれらをスワップアウトすることを禁止することですが、それは大量のメモリを使用します。トレードオフは、次のようないくつかのレベルのハッシュキャッシュによって実現できます。
    • 第1レベルのキャッシュには、ビットマスクとして24ビットのハッシュが含まれています。これは約16MBのRAMを占有し、完全にRAMに保持できます(OSがそれをスワップアウトすることを禁止します)。これを確認することは非常に迅速に行うことができます。
    • 第2レベルのキャッシュには、128ビット以上のハッシュがすべて含まれており、ディスクに保持されます。第1レベルのキャッシュがヒットした場合にのみ、第2レベルのキャッシュがテストされます。第1レベルのキャッシュのハッシュスペースが小さいため、誤検知が多く発生する可能性があり、第2レベルのキャッシュをチェックする必要があります。
  • 最後にスキャンしたたとえば1000ファイルの結果をキャッシュします。このようにして、頻繁に使用されるファイルについて、すべてのハッシュとチェックを何度も繰り返す必要はありません。
于 2009-07-29T13:40:04.143 に答える
2

NOD32 のフットプリントはかなり小さいですが、それでもメモリは 10 ~ 20MB です。

AV が大部分で何をしなければならないかを覚えておいてください。悪意のあるバイトがないか、各ファイルの実行可能部分を調べてください。従来のウイルスは通常 1000 バイト未満で、識別可能なパターンは 50 バイトしかない場合があります。したがって、AV が 100K のウイルス パターンからユーザーを保護するには、50*100K=5MB のパターン データベースしか必要としません。

于 2009-07-29T13:34:12.213 に答える
1

これらのスキャン ツールの無駄のないことを過大評価していると思います。私は、それらが日常的に大量のメモリを消費し、しばらくの間 CPU を急上昇させているのを見てきました。彼らはまた、あなたのスタートアップをハイジャックして、彼らが最初に起動することを確認します。

于 2009-07-29T13:22:49.463 に答える
1

メモリ マップされたファイルを調べる必要があります。ファイル全体を一度にメモリにロードすることなく、巨大なファイルを処理できます。

于 2009-07-29T13:36:18.373 に答える
0

NTFS MFT を直接スキャンし、NTFS ファイルシステム構造を把握します (オープン ソースの実装が利用可能です)。これは、最も効率的なコードを作成するための最良の方法です。自分で作成してください。

ウイルス対策 低レベルのデバイス ドライバと積極的なメモリ キャッシュを使用して、いわゆる影響のないアクセスを高速化していると思います。スクリーンセーバーがアクティブでない限り、私の AV (Norton)はスキャンしません。

問題は、ユーザーのハードウェアがまだ安いことです。ハードディスク ドライブは、ほとんどの場合、速度が遅いという欠点があります。パフォーマンスが遅すぎる場合は、ソリッド ステート ドライブにアップグレードするようユーザーに依頼してください。また、ラップトップのドライブはさらに低速です。

于 2011-04-07T22:15:16.190 に答える