大量のRAMがあるのに、どうして私のシステムはそんなに遅いのですか?


8

だから私のOS(XP)によると3.45 GBのRAMを搭載したコンピュータがある。 2 GBの仮想RAMがあります。

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

問題が何であるかを見てみると、プロセッサは通常約8-12%で動作していますが、RAMは通常250,000+ KBです。これは私のコンピューターの動作を遅くします。もし私が512あるいはギガバイトのRAMしか持っていなければ私には意味があります。私は25万がOSのために使用されるべきかなりのメモリであることを知っています、しかし合計6 GBを持っている、私ははるかに良いパフォーマンスを期待するでしょう。

なぜそれがそれほど遅くなるのかについての説明はありますか?

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


あなたはどんなプロセッサを持っていますか?また、4GBのRAMはそれほど多くありません。せいぜい平均的ですが、それは私が今日誰にでもするだろう最低限の推奨です。
Darth Android

XP 32ビットを実行しているシステムでは、「最高で平均的」とは言えません。
Joe Internet

1
@Joe OSの最大容量との関係は無関係です - 最近の平均的なユーザーが使用するアプリケーションの数とそれらがどれだけのメモリを占有するかということだけに関係します。確かに、彼が64ビットOSにアップグレードするまで、追加しても効果はありません。
Darth Android

IMO、あなたは「平均」からhwコンテキストを削除することはできません。 OPはWindows XPを実行しています。これは推奨される最小RAMが128M、サポートされる最小が64Mです。したがって、サポートされている最小値の約55倍はおそらく平均を上回っています。
Joe Internet

回答:


11

これらの参照スプレッドシートの一部はLAN上にあるのでしょうか。もしそうなら、あなたはLAN上のファイルにどのような接続を持っていますか(100mbit、ギガビット、ワイヤレスなど)。

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

さらに、使用しているメモリの量にかかわらず、excel.exeは通常予想したほど多くのメモリを消費しません。コンピュータ上で実行されている必要のない他のプロセスはありますか。たくさんのタスクバーアイコン(時計の横)に、それらがどのようにして到着したのか、またはそれらが何のためにあるのかわかりません。

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

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

あなたがすることができるのはあなたができる遅さのすべての可能なポイントを識別し、軽減することであり、そして最善を願うことです。


うわーあなたはそれを釘付け!私はちょうど前の記事の助けを借りてそれを考え出し、その後この答えを見ました。そしてはい、私はデータベースについて同意します。その理由は、「DBAを支払う必要がないから」と言われました。代わりに、彼らは私をExcelを待っている私の親指をいじって1日3時間過ごすために私に支払います。私も主に独学であるので私は問題の一部がVBAであることができると確信していますが、私が気づいているのはおそらくもっとLANの問題です。ありがとうございます。
Zombian

4
いいえ、どいたしまして。良いニュースは、Excelで物事を行うための比較的効率的な方法があるということです。一般的な作業は、データの行数を見つけることです。他の方法では最初の空のセルに遭遇したときに最後の行を報告する危険性があると仮定して、全範囲のデータを事前に設定した最大値を検索する人もいます。最初の空のセル優れたコーディングのもう1つの良い方法は、テーブル全体を配列にロードすることです。これにより、テーブルはメモリ内でローカルに保たれます。このような小さなものは、物事のスピードアップに役立ちます。
music2myear

1
1日3時間かけてSQLを学びます。データベース理論、およびExcel VBAのスキルを向上させる方法。専用のDBAを用意することは、非常に困難なもの、または非常に大きなものには適していますが、SQL Server Expressエディションのようなものを使用するのはそれほど難しくありません。
Joe Internet

1
@ジョー:またはアクセス (これはおそらく既にすべてインストールされているので、会社にとっては使いやすいでしょうが、いつかSQL Serverに移行するのはExcelよりはるかに簡単です)
BlueRaja - Danny Pflughoeft

フォームにボタンを描画できること以外に、Accessがこのような状況にもたらす可能性がある単一の利点については思いつかない。あなたが本当にそれを必要とするならば、Visual Studio Expressはまだより良い選択です。
Joe Internet

6

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

あなたのマシンが0.25GBしか使用していない場合、それはかなり厄介に思えます - メモリがまったくあなたのボトルネックにならない限り。

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

それが問題であれば、考慮すべきいくつかの選択肢があります...

  1. ハードディスクの使用を最小限に抑えるために、RAMディスクを使用してみてください。そこに文書を置き、一時ファイルもそこに保管してください。 32ビットWindows XPがアクセスできる4GBの外部のRAMを使用するいくつかのRAMディスクさえあります。

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

  3. ソリッドステートのハードディスクを使用してください - しかしあなたのアプリケーションがたくさんの書き込みをしているなら、それはそのSSDのために過剰な消耗を引き起こすかもしれないことに注意してください。また、Windows XPはSSDに最適化されていません - Trimをサポートするためのアップデートを探してください。

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


ありがとうございました!ローミングプロファイルを使用していますが、これにより、作業中のファイルに対するサーバーへの読み書きが問題の大部分を占めていることがわかりました。また、よく文書化されています!再度、感謝します。
Zombian

2

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

つまり、多くのリソースを使用するプログラムを実行すると、OSはメモリ内のデータをディスク上のデータとスワップアウトする必要があるため、ディスクへのページングが頻繁に行われます。あなたはあなたのページファイルのサイズを増やすことを試みることができます(それがあなたが仮想RAMによって意味するものであると仮定すると)、しかしあなたはWindowsにこれを管理させるほうが良いでしょう。

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


1
32ビットボックスに8GBのRAMをインストールしたとしても、3.45GBしかないということですか。そして残りは二度と使われることはないだろうか?
Pacerier

1
@Pacerier - そのようなもの。プロセスごとに2GBの制限があり、その制限はOSの性質によるものです - 32の32乗に上げられた2は4GBなので、あなたはもっと高くすることはできません。
ChrisF

2

現在の回答とはまったく異なる何かが疑われます。「Office 2003、2007 Office、およびOffice 2010のMicrosoft Officeファイル検証」更新プログラムがインストールされているかどうか疑問に思います。

それはCRAWLにExcelファイルのネットワークアクセスをもたらします。 21kのファイルを開くのに約1分かかりました。それが外れるとすぐに、強打!

Server Faultに関する私の記事、およびこれを「既知の問題」として指摘している関連のKB記事を参照してください。

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


うわー!それは激しいね!幸い、私はExcel 2010を実行していて、私は何ヶ月もこれに気づいていました(ポストはアップデートが今月の初めにあったと言いました)。頭を上げてくれてありがとう。私はそれがそれほど単純であることになったことを望みます!
Zombian

@ Zombianさて、少なくともあなたはチェックしました。はい。更新プログラムの問題のある機能は組み込まれているためExcel 2010には影響しませんが、2003/2007の場合とは異なります。そのアップデートは多くのプロの管理者に多くの時間と髪の毛の引っ張りを引き起こしました。私もそれがあなたにとってそれほど簡単であったことを望みます。
KCotreau

1

他の回答はあなたの問題に貢献するかもしれないことを述べています、しかしそれらのどれもそれについて言及していないようです Excelにはメモリ制限が組み込まれています。 PCのRAMをすべて使うわけではありません。

Excelにはいくつかの制限があります。

  • エクセル5:に限定 16MB
  • Excel 95/97/2000:に限定 64MB
  • Excel 2002:に限定 128MB
  • Excel 2003:に限定 1GB ワーキングセット、実際のワークブック用
  • Excel 2007:に限定 2GB ワーキングセット、実際のワークブック用
  • Excel 2010:に限定 2GB 32ビットExcelでは、8テラバイト( 8000GB 64ビットExcelで

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.