web-dev-qa-db-ja.com

RAMが多すぎるのに、なぜシステムが非常に遅いのですか?

つまり、OS(XP)に応じて3.45GBのRAM)を搭載したコンピューターがあります。2GBの仮想RAMがあります。

私の会社は、多くのリソースを消費する他のワークシートを参照するという限界までExcelをプッシュしています。多くの場合、計算や保存などを実行していると、プログラムが10分もハングしているように見えます。

問題が何であるかを確認すると、プロセッサは通常約8〜12%で実行されていますが、RAMは通常250,000 + KBです。これにより、コンピュータの実行速度が低下します。これは理にかなっています。私が512またはおそらくギガバイトのRAMしか持っていなかったとしたら、私には250,000がOSに使用されるかなりのメモリであることを知っていますが、合計6 GBがあるので、はるかに優れたパフォーマンスが期待できます。

なぜこんなに遅くなるのか説明はありますか?

編集:明確にする必要があります。私は、コンピュータの動作が遅いという解決策だけでなく、この背後にある概念をもっと探しています(これは単なる例であるはずです)。システム全体に影響を与える深刻な速度の変化に気付く前に、ほぼすべてのRAMを使用できるはずだという認識の下にありました。

8
Zombian

これらの参照されたスプレッドシートの一部はLAN上にある可能性がありますか?もしそうなら、LAN上のファイル(100メガビット、ギガビット、ワイヤレスなど)にどのような接続がありますか?

Excelは非常に「おしゃべり」です。特に、さまざまなリソースに分散している参照スプレッドシートやデータを処理している場合、アプリケーションが必要な情報を送受信するには、多くの通信が必要になる可能性があります。ほとんどのファイルがネットワーク共有とネットワークドライブ上にある場合、これは少なくともあなたが経験している遅さのチャンクを説明するかもしれません。

さらに、使用しているメモリの量に関係なく、Excel.exeは通常、期待するほど多くのメモリを使用しないことに気付くでしょう。コンピューターで実行されている必要のない他のプロセスはありますか?時計の横にあるたくさんのタスクバーアイコンが、どうやってそこにたどり着いたのか、何のためにあるのかわからないのですか?

最後に、多くの企業は、あなたの会社のように、Excelを最高の機能をはるかに超えて活用しています(なぜ、データベースが必要なときにデータベースを使用し、Excelを単純なデータ記録および処理機能に任せないのですか? ?)、古い/遅いマシン(4年前のIBMデスクトップ8215および9645)と新しい/速いマシン(6か月前のデスクトップ、3269、9964)でExcelの速度を比較すると、大きな違いはないことがわかりました。 。

スプレッドシートを接続するマクロとコードの記述方法によっては、スプレッドシートが必要なデータを収集して処理する速度に本質的に厳しい制限がある場合があります。

あなたができることは、あなたができるすべての可能な遅さのポイントを特定して軽減し、最高のものを期待することです。

11
music2myear

Windows XPは、約1GBを超えるRAMを使用するというあまり良い仕事をしていません。一部のアプリケーションはそれ以上を使用する場合がありますが、少なくともデフォルトでは、一度に2GBを超えるアプリケーションを使用することはできません。これはアプリケーションが認識できる最大の仮想アドレス空間です。 3GBのアドレス空間を許可するモードがありますが、それは多くのソフトウェアの互換性の問題を引き起こす可能性があります。

マシンが0.25GBしか使用していない場合、メモリがボトルネックになっていない限り、それはかなり奇妙に思えます。

マシンが「ハングしているように見える」場合は、ハードディスクに大量にアクセスしていると思います。これにより、Windows XPのメモリ使用の問題が関連する可能性があります。Windows7は、近い将来に使用するものを予測してキャッシュすることについて、はるかに積極的です。 Windows XPは、キャッシュにそれほど多くのメモリを使用することはなく、予測キャッシュを実行しようとすることもありません。そのため、ハードディスクを「スラッシュ」する可能性がはるかに高くなります。

それが問題である場合、考慮すべきいくつかのオプションは...

  1. ハードディスクの使用を最小限に抑えるために、RAMディスクを使用してみてください。そこにドキュメントを置き、一時ファイルもそこに保存されていることを確認します。 32ビットWindowsRAMがアクセスできる4GB以外のXPを使用するRAMディスクもいくつかあります。

  2. ハードディスクのパフォーマンスを向上させるために、ストライピング付きのRAIDアレイを使用してください。

  3. ソリッドステートハードディスクを使用しますが、アプリケーションが大量の書き込みを行っている場合は、そのSSDに過度の摩耗が発生する可能性があることに注意してください。また、Windows XPはSSD用に最適化されていません-Trimをサポートするためのアップデートに注意してください。

基本的に、アイデアは(1)システムにRAMの使用を強制するか、(2、3)パフォーマンスのボトルネックを減らすハードウェアに投資することです。

6
Steve314

32ビットオペレーティングシステムを使用しているようです(質問で明確に言うことはありません)。その場合、3.45GBのアドレス可能メモリに制限されます。 Windowsは、この制限を超えるメモリを認識していません。

これは、多くのリソースを使用するプログラムを実行している場合、OSがメモリ内のデータをディスク上のデータとスワップアウトする必要があるため、多くの場合ディスクにページングすることを意味します。ページファイルのサイズを大きくしてみることができますが(仮想RAMの意味であると仮定して)、Windowsにこれを管理させる方がよいでしょう。

メモリからパフォーマンス上の利点を得るには、64ビットオペレーティングシステムをインストールする必要があります。

2
ChrisF

現在の回答とはまったく異なるものがあると思います。「Office2003、2007 Office、およびOffice2010のMicrosoftOfficeファイル検証」アップデートがインストールされているかどうか疑問に思います。

ExcelファイルのネットワークアクセスをCRAWLに落とし込みます。 21kのファイルを開くだけで約1分かかりました。それが外れるとすぐに、強打!、通常に戻ります。

サーバー障害に関する私の投稿と、これを「既知の問題」として記載している関連KB記事を参照してください。

https://serverfault.com/questions/286427/slow-opening-of-Excel-files-on-the-network

2
KCotreau

他の回答では、問題の原因となる可能性のある事項について言及していますが、Excelにはメモリ制限が組み込まれているとは言及されていないようです。 PCのRAMをすべて使用するわけではありません。

Excelには次のような制限があります。

  • Excel 5:16MBに制限
  • Excel 95/97/2000:64MBに制限
  • Excel 2002:128MBに制限
  • Excel 2003:1GBワーキングセットに制限され、実際のブックでは少なくなります
  • Excel 2007:2GBワーキングセットに制限され、実際のブックでは少なくなります
  • Excel 2010:32ビットExcelで2GBに制限、8テラバイト(8000GB)64ビットExcelの場合

ソースと詳細情報: Excelメモリ制限 、Charles Williams、Microsoft Excel MVP

1
Steven Noto