ゲームのロード時やフラッシュビデオの視聴時にソフトページフォールトを不当に取得する


8

アセットをオンザフライでロードするゲームをプレイすると、コンピューターに奇妙な問題が発生します。おそらく私は間違った場所を探していますが、同様の問題を抱えている人を見つけることができないようです。

不明確な場合のために、いくつか例を挙げておきます。ソースゲームでは、マッパーは、オブジェクトを非表示にするタイミングと場所をエンジンに指示することにより、オブジェクトを最適化して、コーナーを丸めるかドアを開けるまでオブジェクトがシーンに追加されないようにすることができます。これらのオブジェクトをロードするとき、私のコンピュータは窒息します。たとえば、Portal 2を見てみましょう。エリアの読み込み画面が消えると、レベルに放り込まれます。すぐに、フリーズした画面で挨拶し、約1秒間、音声を途切れ途切れにする/繰り返します。それが通過すると、誰もがフルフレームレートですべての変な話を続けます。それからドアに近づき、ドアを開けるようにトリガーします。反対側の部屋に読み込まれるときの静寂と途切れ途切れのオーディオのもう1つの良い秒。他の誰かがゲームをプレイするのを見たとしても、これは決して起こりません。とにかく、これは我慢できます。それ' 面倒ですが、ゲームプレイを実際に妨げることはありません。今、あなたが進行するにつれて常にロードするゲーム、Sonic Generationsをゲームしましょう。じっと立っていると、なめらかな滑らかなフレームレートが得られます。しかし、彼が前進し始め、レベルをさらにロードするとすぐに、私は1 FPS未満に低下し、まったくプレイできなくなります。ますます多くのゲームが最近これを実行しているようです。そのため、私はようやくトラブルシューティングに真剣に取り組んでいます。

私はこれらの一時停止がゲーム自体にプログラムされていることを強く疑います。ロード画面は、データがロードされるときにスムーズに実行されるように設計されており、他のマシンでは実行されます。もう一度例としてSonicを使用すると、ロード画面の可動部品でさえ、ロードが完了するまで非常に途切れ途切れになります。

私はこのコンピューターを4年近く前に構築しましたが、3Dゲームで使用し始めてからこの問題がありました。それ以来、私はマザーボード、HDD、グラフィックスカードが故障したため、交換しました。(ケースのファンはある日機能を停止し、HDDはまったく別の取引でした。)

4 GBのRAMを搭載したIntel 2.5GhzクアッドコアとnVidia GTX 460で、AeroをオンにしてWin7 Ultimate 64ビットを実行します。

みんな、ありがとう!

更新:ページ違反のヒープロードを取得していることが明らかになりました。Sonic Generationsの場合は1秒あたり平均170,000、Portal 2のロード中は平均70,000 、Livestream.comでストリームを見ている間は非常に安定した30,000。リソースモニターによると、これらはハードフォールトではありません。私はこれらの数字が他の誰と比較するのかちょっと気になります。

補遺:別の例と潜在的な症状を追加することもできます。まず、Trackmaniaというレーシングゲーム。ソロレースでは、(他のプログラムが生成している可能性があるものを除いて)目立つページフォールトはなく、ゲームはスムーズに実行されます。ただし、オンラインでプレイしていると、頻繁ではあるがランダムな間隔で大規模なしゃっくり(およびページフォールトスパイク)が発生します。私は一緒にレースをします。ゲームは1秒以上一時停止し、壁の横のしわくちゃのマスの中で車両を上下逆さまにして再開します。他のプレイヤーの車を隠しても問題は解決しません。

発生する可能性のある症状については、関係のない問題であるのではないかと心配しており、トラブルシューティングを間違った方法で送信したくなかったため、そのような言及は避けました。この時点で、なぜそれについて言及しないのですか?基本的に、しばらくの間ビデオを見た後、私のコンピュータは完全に完全にフリーズします。オーディオのループ、画面全体(カーソルを含む)が反応しない、num-lockはトグルせず、ハードシャットダウンしかできません。数分または数時間でトリガーできます。通常、ビューポートが大きいほど、発生が早くなります。ハードウェアアクセラレーションがオンになっている限り、フルスクリーンのYouTube動画は安全です。

ハードウェアアクセラレーションをオンにしたフルスクリーンのYouTubeでは、ページフォールトは発生しないようです。ただし、ウィンドウ処理された場合はそうなります。ライブストリームは常に、ページ違反、フルスクリーンかどうか、加速かどうかを生成します。しかし、ページフォールトが大量に生成されるにもかかわらず、ゲームがこのようにコンピューターをフリーズさせることはありません。

(タイトルが「ゲームアセットがバックグラウンドで読み込まれるとグラフィックが途切れる」から「ゲームを読み込んでフラッシュビデオを見るとソフトページフォールトが大量に発生する」に変更されました。)


1
十分なRAMがありますか?
soandos 2012年

私は通常3GBの使用量を超えないので、十分に余裕があるはずです。間もなく届くはずの追加のメモリセットを注文しました。それらを交換して、それが役立つかどうかを確認してみましょう。そうでない場合は、とにかく容量を使い果たしました。勝利/勝利。
YotaXP、2012年

バックグラウンドでパフォーマンスモニターを実行して、ページフォールトがたくさんあるかどうかを確認できますか?
soandos

ページフォールトに関する限り、「通常」が何であるかを知るのに十分な経験がないので、ここにスクリーンショットを示します。 i.imgur.com/cbGFP.png Sonic Generationsをどの時点で起動したかは明らかだと思います。
YotaXP、2012年

それがあなたの問題です。(PS、それが150を超えるのを見たことはありません。これはナッツです)
soandos

回答:


3

ここで情報を確認し、問題が彼のページフォールトのかなりの部分にあることを発見した後、調査する可能性のあるいくつかの可能性をここに追加します。

これらがソフトページフォールトであり、それらの多くを取得している場合、これらのフォールトを引き起こしているメモリアクセスはテクスチャリソースのリクエストであると私は推測しています。グラフィックカードには、テクスチャフェッチリクエストを高速化するためのある程度のオンボードメモリがありますが、何らかの理由で、ドライバがオンボードメモリに十分なテクスチャをキャッシュしていないか、キャッシュしていない可能性があります。それのいずれか。私はnVidiaのグラフィックスドライバー設定に精通していません(私は過去4年間主にATIカードを実行してきました)ので、ドライバー設定、オーバークロック設定、またはBIOS設定でさえ、そのようなせいなのかどうかわかりません。状態。ただし、これを調べて問題の原因であるかどうかを確認します。

また、メモとして、Portal 2の場合と同様にページフォールト/秒を記録しましたが、ほとんど見つかりませんでした。もちろん、私のシステムはCrossfireで2 Radeon HD 6970を使用していますが、グラフィックカードは、Portal 2をそのようなページフォールトなしで処理できるはずです。すべてが正常に動作している場合は、次のような画像が表示されると思います。 コンピューター上のポータル2のページフォールト/秒

グラフィックカードが原因である(または、コンピューターで使用されているグラフィックハードウェアである)ことを除外する場合は、Aeroを無効にして、デスクトップでアイドリングしているときに何が起こるかを確認することをお勧めします。ページフォールトの数が減少する場合、それがグラフィックス関連であるという私の直感はおそらく正しいです。そうでない場合は、別の場所にある可能性があります。


SATAケーブルとポートを切り替えるだけです。変化なし。(BIOSが外部から起動できると思ったとき、私は少し恐怖を感じました。)しかし、提案をありがとう!
YotaXP 2012年

@ sidran32、彼はページフォールトを取得していますが、取得すべきではありません。問題は、その理由です(つまり、ディスクI / Oが非常に遅い場合でも、ディスクへのルックアップがないか非常に少ないため、まったく問題になりません)
soandos

@soandos知っています。私は私のポストの後でそれを学びました。
ベン・リチャーズ

@ sidran32、ゲームが実行されていないときでも、かなりページ違反が発生していることを考慮すると(最低は471 / s)、グラフィックに依存しないと思います。
soandos

1
きちんとしたアイデア!結果は次のとおりです。そのスクリーンショットではキャプチャできませんでしたが、Aeroがオフの場合でも、メニューの各ステップ([スタート]をクリックし、[コンピューターのプロパティ]を開き、[システムの詳細設定]をクリック)により、障害がそれぞれ5〜15kに急上昇しました。確かに、GPUはそれとは何の関係もないはずです。
YotaXP、2012年

0

ソフトページフォールトは、プロセスによって発行された特定のシステムコールによって生成される場合があります。問題の正確なシステムコールは、このvmware記事で説明されているようにpfmonツールを使用して見つけることができます。

Windowsアプリケーションによって生成される過度のページフォールトは、仮想マシンのパフォーマンスに影響を与える可能性があります。

pfmonは、別のダウンロードとして、Windows 2000リソースキットツールから引き続きダウンロードできます。これは32ビットプログラムですが、動作する可能性があります。

[編集]

私は自分のコンピューターでpfmonをテストしましたが、膨大な数のソフトページフォールトに驚かされました。FirefoxやInternet Explorerの数秒で数万のそのような障害が発生しますが、実際には速度の低下は見られません。

私の結論は、ソフトページフォールトをカウントしても意味がないということです。どうやらWindowsは当然それらを生成し、それらはそれが機能する方法にすぎません。Windowsがページのメモリを検索する必要があるという事実は、なぜLinuxがWindowsより速いのかについての別の説明かもしれません。

したがって、Windowsでの非効率的なメモリ管理を考慮して、ハードページフォールト(投稿したリストの番号が非常に低いもの)のみを気にしてください。プロセスの多くのソフトページフォールトは、問題のプロセスが大量のメモリ処理を行っていることを明らかに示しているだけです。

それでもコンピュータにメモリの問題があると思われる場合は、Windows Server 2003リソースキットツールのツールを使用した、 監視によるパフォーマンスの問題の検出と解決に関する記事をご覧ください。

確かにMemtest86 +などのハードウェアテストを実行することもできますが、問題が本当にメモリに関するものであるとは完全には確信していません。


面白い。Portal 2でテストしました。pfmonを実行してから1秒以内に停止し、portal2.exeも強制終了します。 これがプロンプトで、ここがログファイルです。私は正直にこの情報から何を理解すればいいのか分かりませんが、たぶんあなたはそうですか?この場合、portal2がマップをロードしている間にpfmonを実行しました。
YotaXP

上記の編集で問題に対する私の見解を追加しました。ところで、「メモリオプティマイザ」製品をインストールしていないことを願っています。
harrymc

忍び寄らない限り、私のPCにはそのようなものはないはずです。自分の欠点を、質問で投稿したものと比較できますか?Memtest86 +を複数の夜にわたって実行し、記憶を交換しようとしました。私の問題がこれらのページ違反に関連していないと思われる場合は、他に何を調べればよいですか?他のコメントを読む機会がありましたか?もうしばらくここにいます。= pこれらの診断ツールは、問題のあるアプリケーションを作成する人にとって、より便利に思えます。私が知る必要があるのは、なぜそれらが私にとって問題を引き起こしているのかということです。
YotaXP、2012

私の推測では、コンピューターが構築されたときに行われたいくつかのエラーでしょう。多分マザーボードのための間違ったメモリ、間違ったメモリ乗数、または何でも。ハードウェアは、集中的なメモリアプリケーションを処理できるようには見えません。また、Windowsに問題があるようには見えません。オーバークロックに使用するツールを試してみてください。
harrymc

-1

RAMとCPUの両方で電圧を少し上げることをお勧めしますか?質の悪いマザーボードを使用している場合や、RAMがまったく不良な場合にも、同様の問題が発生します。電圧を少し上げると、すべてが正常に戻り、システムは何年も問題なく動作しました。


それは興味深い提案です。私はそのようなものをいじる経験がないので、午前中にそれについていくつかの研究をします。どのくらいの増加を考えていますか?
YotaXP、2012

私の電圧設定を見てみると、すべてが現在自動に設定されています。BIOSがそれらをどのように設定しているかを知る方法はありますか?また、メモリ電圧に関して奇妙なことに気づきました。私のメモリは1.8vを推奨していますが、BIOSの最小設定は1.92vです。それは問題でしょうか?
YotaXP、2012

RAMモジュールの正確なモデルとCPUを見つける必要があります。それらの正確なモデルがわかったら、スペックシートをオンラインで調べて、それらのデフォルト電圧を確認することができます。CPU-Z(cpuid.com/softwares/cpu-z.html)を使用して正確なモデルを決定し、現在の動作電圧を確認することもできます。CPUをいじる前に、まずRAMを試してください。開始するには0.1vずつ増やし、徹底的にテストし、問題が解決しない場合は0.3vまで続けてください(超過しないでください)。これは、問題であるRAMを除外するのに十分なはずです。
ジョシュア

私はこの機械を作ったので、何が入っているのか分かります。 メモリCPU、およびマザーボード。CPU-zは、CPUにほぼ最大電圧が与えられていることを示しています。探したいものがあればCPU-zからのレポートを以下に示します。私は、電圧を可能な限り低く設定することにより、RAMをいじり始めます。これは、推奨電圧よりもすでに0.12v上にあります。
YotaXP、2012

RAMが問題であるようには見えません。別の角度からアプローチしてみましょう。アンチウイルスがインストールされている可能性はありますか?複数のウイルス対策またはマルウェア対策がインストールされていますか?
ジョシュア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.