私のコンピューターでは、WoTのカードが非常に長い時間(1分以上)読み込まれることに気付きました。 あなたが入って来て、それが起こって、戦闘に入ります。彼はすでに30秒間戦っています。 そして時には、燃えている破片の形で戦車を見つけることさえあります。 私のコンピューターはもちろん古く、長い間アップグレードを求めてきましたが、最初はプログラムで何かを試してみることができます。
そのため、最初にすべきことは、ブレーキの原因を特定することです。 容疑者のリストは、原則として、それほど大きくありません。
- CPU
- RAM
- HDD
- ネットワーク
- ゲーム開発者の曲率
- ドラム
スクリーンショットからわかるように、CPU、メモリ、およびネットワークの負荷は最大にはほど遠いです。 しかし、HDDのロードスケジュールは非常に不均一で、ピークとディップがあります。 もっと詳しく見てみましょう。 「ツール->ファイルの概要...」をクリックします。 ビンゴ! ここでは、大量の入出力操作(正確には70 602個)を確認できます。
ダウンロード中に読み込まれるデータの合計量は約450 MBで、ファイル操作の操作時間は50秒以上です。 そのため、マップの読み込み時間のほとんどを占めるのはファイル操作です。 驚くことではありません-WoTには、よく発達したマップ、戦車のモデル、あらゆる種類の家\木\石があります。 450 MBの読み取りデータは、これらすべてに十分な価格のようです。 しかし、どうすれば起動時間を短縮できますか? 結局のところ、このデータはすべてゲームでまだ読み取る必要があります。 ファイル操作を高速化するための古い実証済みの方法-RAMディスクがあります。 しかし、ここに問題があります-額にそれを適用しても機能しません。 ゲームには11 GBが必要で、私のマシンでは4 GBのRAMしかありません。 つまり、11 GBのRAMディスクを作成してゲーム全体を配置したとしても、物理法則とオペレーティングシステムを欺くことはありません。ディスクは作成される可能性がありますが、そのデータは使用したくない同じハードディスクにスワップされます。 オプションではありません。
深く掘り下げてみましょう-どのファイルにアクセスするのに最も時間がかかるかを見てみましょう。 「フォルダ別」タブを開き、次の図を参照してください。
ほとんどのリソースには、%World_of_tanks%\ resフォルダー内のファイルにアクセスしてアクセスします。 ここでは、次のサブフォルダーを選択できます。
- オーディオ:14.48秒-フォルダーは200 MBかかります
- 内容:9.93秒-フォルダーは844 MBかかります
- スペース:6.19秒-フォルダーは419 MBかかります
- 車両:8.60秒-フォルダーは1.7 GBかかります
- 必要なファイルをメモリにロードします
- 一部のMicrosoft DetoursまたはApiHijackを使用して、Worldoftanks.exeプロセスでCreateFile、ReadFile(および他の何か)関数を接続します。
- フックでは、WoTが読み取ろうとしているファイルを判別します。 私たちのものの場合-メモリからデータを与え、残っている場合-ファイルの入出力の実際の関数に呼び出しを転送します。
しかし、残念ながら、うまくいきませんでした。アイデアが思いついたので、何回も簡単にできるようになり、すべてが台無しになりました:)。 アイデアは、この場所で* nix-systemsのユーザーになれればいいということです。ここには、どこにでも何でもマウントできる素晴らしいマウントコマンドがあります。 Windowsではこれはそうではありません...またはそれですか? いくつかのあいまいな記憶が意識の周辺に浮かんでいたので、私は情報を求めて頭とGoogleに手を伸ばしました(Googleの人がついに頭の中で検索をしたとき-とても怠somethingでした!)。 Windowsで使用できるものは次のとおりです。
- subst-必要なものとまったく逆の処理を行います。 ルートが指定されたフォルダーになる新しい仮想ディスクを作成できます。 そして、他の方法が必要です-既存のドライブを「仮想」フォルダーにリンクします。
- Microsoft KB 307889に記載されている方法-一見、必要なことを行います。 NTFSファイルシステムがフォルダーとディスクのルートの間にリンクを作成できるようにします。 素晴らしいことですが、残念ながら、RAMドライブでは動作しませんでした(NTFSでフォーマットした場合でも)。
- そして最後に、Sysinternalsのユーティリティのリストで、同様の検索を開始する場所を検索することにしました。 そして、もちろん、そこに私が必要なものが見つかりました。 Junctionユーティリティを使用すると、ファイルシステム内の任意のパスを特定のフォルダーにマウントできます(同様のリンクがあります-linkd )。
- RAMドライブ(たとえば、 このリストから)を取得します。 これを取った。
- キャッシュに割り当てることができるRAMの量を考えます。
- RAMドライブ上のゲームリソースでフォルダーを書き換えます(元のフォルダーの名前を変更します-まだ必要です)。
- Junctionを使用して、Ramdrive上のフォルダーをゲームのリソースフォルダーにマウントします。 このようなもの:
「ジャンクションD:\ゲーム\ World_of_Tanks \ res \オーディオr:\オーディオ」 - ゲームを開始して楽しんでいます。
もちろん、この問題全体では、RAMドライブ上のファイルのボリュームがOSがスワッピングを使用することを決定するほど大きくならないように、無理をしないことが重要です。 しかし、ここで私に起こったことがあります:
RAMドライブ上のフォルダー内のファイルにアクセスする時間がほぼゼロになり、カードの読み込みが非常に速くなりました。カウントダウンの開始前に頻繁に表示され始め、戦闘の開始前にいくつかのフレーズを仲間とやり取りしました。 一般的に、私が望んでいたこと-私は達成しました。 ゲームの奥深くを掘り下げてフックを使用する機会がなかったことは残念ですが、私の方法はWoTライセンス契約にも違反していません。これも重要です。