問題タブ [defragmentation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
select - H2 最適化 select ステートメント / シャットダウン デフラグ
テストケース:
1.次の select ステートメントには最大 30 秒かかります。応答時間を最適化する方法はありますか?
2.シャットダウン・デフラグをしてみました。しかし、このステートメントは、私のテスト ケースでは約 40 分かかりました。シャットダウンのデフラグ後、選択には最大 15 秒かかります。ステートメントを再度実行すると、1秒未満かかります。サーバーを停止して起動しても、ステートメントは約 1 秒かかります。H2 には永続的なキャッシュがありますか?
インフラストラクチャ: WebBrowser <-> H2 コンソール サーバー <-> H2 DB: h2 1.3.158
perl - Windows2008のperlスクリプトからデフラグを呼び出せません
Windowsでdefragコマンドを実行するperlスクリプトを実行したいと思います。ただ使ってみたら
「「デフラグ」が内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません」というメッセージが表示されます。C:\ Windows \ System32 \ defrag.exeのフルパスを指定しても、同じエラーが発生します。また、defrag.exeの存在のテストは失敗します。例えば:
すべて失敗します。実際、.exeファイルをテストすると失敗します。これはWindows2003で正常に機能しますが、Windows 2008で機能しなくなった理由を誰かが知っていますか?
ありがとう!
クリス
更新:バックスラッシュは元々エスケープされていませんでした。修理済み。
windows - C#.NET プロジェクトで参照として DLL ファイルを追加する
私は現在、Microsoft Windows 環境でディスクの最適化を実行するプロジェクトに取り組んでいます。そのために、Windows デフラグ ユーティリティの組み込み関数を使用したいと考えています。Windowsが「dfrgres.dll」ファイルを使用して最適化を実行することをどこかで読みました。そこで、「dfrgres.dll」ファイルをプロジェクトの参照として追加したいと思います。しかし、私はそうすることができません。指定した DLL をプロジェクトに追加しようとすると、次のエラー メッセージが表示されます。
「「...\dfrgres.dll」への参照を追加できませんでした。それは有効なアセンブリまたは COM コンポーネントです」
問題がどこにあるのか教えてください...またはそれを行う他の方法はありますか...??? 最適化のためにインターネット経由で利用できる他のオープンソースのリソースはありますか...???
よろしく、
とらえどころのない氏
c++ - Knuth ヒープで最適化を行うことはできますか?
Knuth メモリ ヒープの外部フラグメンテーションを排除することは可能でしょうか? この問題を解決しようとする前に、ヒープ上のブロックを移動できるかどうか確信が持てませんでした。ブロックを移動できれば、外部の断片化を解決するのは簡単だと思います。
この問題について少し考えてみました。すべてのコンテンツを新しい場所 (仮想アドレス) にコピーし、以前にブロックを指していたすべてのポインターを新しいアドレスに更新すると、何が問題になりますか? これは正しい解決策かもしれないと思いますが、あまり自信がありません。
誰でもこの質問について何か考えがありますか?
前もって感謝します。
c# - C# を使用して DefragAnalysis を取得する方法
私は現在、C# (.NET 4.0) でアプリケーションを開発しています。このアプリケーションは、その機能の一部として、特定のボリュームの断片化の割合を決定する機能を備えている必要があります。他のすべての機能はテスト済みで、正常に動作していますが、このデータにアクセスしようとして問題が発生しました。他の機能に使用している形式と一致するため、理想的には WMI を使用することを好みますが、現時点では、RegEx を使用してフィルター処理する必要がある場合でも、アプリケーションに効率的に統合できるものは何でも喜んで使用します。データ。現在、Windows 7 Professional (x64) マシンで開発を行っています。管理者権限を使用して次の Powershell スニペットをテストしましたが、問題なく動作します。
これは、同じことを達成するために C# で使用しているメソッドですが、InvokeMethod は 11 (0xB) を返し続けます。
次の行を app.manifest に追加しましたが、まだ何も追加していません。
誰かが私が見落としていることを教えてもらえますか? 失敗は私にとって選択肢ではないので、C# を使用して実行できない場合は、別の言語で DLL を作成してもかまいません (学習する必要があるとしても)、必要な結果が得られます。理想的には、アプリケーションは XP 以降の任意の OS で動作し、ユーザーに対して完全に透過的でなければなりません。
これらは、私がすでに使用したリソースです。msdn にも jeffrey_wall ブログを追加したかったのですが、新しいユーザーとして、一度に 2 つのハイパーリンクしか追加できません。再度、感謝します。
http://www.codeproject.com/Messages/2901324/Re-the-result-of-DefragAnalysis-method-in-csharp.aspx
c++ - CRTメモリ割り当て
このアプリケーションは、幾何学的座標の大きなstd :: vector <>を割り当てます
。これは、モデルを描画するために最終的にOpenGLに送信されるため、ベクトル(連続していることを意味します)である必要があります。
また、OpenGLは連続したデータを処理します。
ある時点で割り当てが失敗します。これは、メモリを予約するとstd::bad_alloc例外がスローされることを意味します。ただし、現時点ではまだ多くのメモリが空いています。
問題は、隣接するブロックを割り当てることができないことです。
したがって、最初の2つの質問は次のとおりです。
CRTがメモリを割り当てる方法を制御する方法はありますか?またはそれを最適化する方法(クレイジーなアイデア))。
おそらく、実行時に何らかのサイズのメモリのブロックを割り当てることができるかどうかを確認する方法があります(try / catchを使用しない)。
上記の問題は、この1つの大きなベクトルを複数のベクトルにフラグメント化し、それぞれに対してOpenGLを1回呼び出すことで部分的に解決されました。
ただし、それぞれの小さいベクトルのサイズを定義する方法にはまだ疑問があります。かなり小さいサイズのベクトルがたくさんある場合は、ほぼ確実にメモリに適合しますが、OpenGLの呼び出しが多くなり、視覚化が遅くなります。
file - 何百もの数メガバイトのファイルを書き込んでいるときにファイルの断片化を回避するにはどうすればよいですか?
私の質問は、ハードディスクの断片化を回避する方法に似ていますか? 、しかし、サイズが 2 MB から 100 + MB の範囲の可能性がある 1 日あたり数百のファイルを生成します (その質問者は、ディスクが乱雑になることをより心配していたため、ファイルが小さいことを暗示していました。私の問題は、これらのファイルを読み取るパフォーマンスです)。これらのファイルは、一度に少しずつ書き込まれます (ログ データ)。これは、断片化を作成する最良の方法です。(データベースはオプションではありません。) コードが完全に書き込まれた後にデフラグする必要がありますが、ファイルが同じ日に読み戻されるとパフォーマンスが低下します。
それを行う方法は、 How can I limit file fragmentation while working with .NET?によって提案されているようです。; 彼らは詳細が不足しています(そして私はC ++を使用しています)。最初に SetFilePointerEx() と SetEndOfFile() を使用してファイルのサイズを 2 MB に設定し、ファイルが割り当てられたサイズに達したら、観察された増加率に基づいてサイズを変更します。その後、書き込みが完了したら、実際のデータ サイズにリサイズします。
私が目にする 1 つの落とし穴 (実際にはhttp://www.cplusplus.com/forum/windows/22114/で指摘されています) は、アプリがクラッシュしたり、コンピューターがシャットダウンした場合に起こることです。現在、ファイルに不明なデータがあり、Windows でそれを検出する方法がありません。これは、ファイルごとまたは単一のファイルに書き込まれたデータの量を追跡するためにファイルを作成することを示唆しています。より良い戦略はありますか?おそらく、後で検出できるように、各書き込みの後に十分なゼロを書き込む (そして、次の書き込みの準備ができるようにバックアップする) でしょうか?
私が見逃した他の問題はありますか?
mysql - MySQL データファイルの断片化を防ぐには?
この質問は何度も聞かれたと思いますが、検索すると、いくつかの回答にいくつかのメモしか見つかりませんでした。
ファイルは一般的に OS+filesystem によって処理されることは知っていますが、これを変更する方法があります (またはあるはずです)。他の大規模な DB システムは、少なくともファイルの事前割り当てを使用し、大きなチャンクを追加して拡張します。私が知っているように、MySQL にはこのタイプの機能がなく (または私の知識が古くなっているのでしょうか?) 、ファイル内のレコード OPTIMIZE TABLE
をデフラグするものしか提供できませんが、ファイル自体は非常に断片化されている可能性があります。
具体的な問題として、スタックとして機能するテーブルがあります。多くINSERT
の とDELETE
があり、データの寿命が短く (数秒から数時間)、スタックの最大サイズがわかっています。テーブルは頻繁に (1 日に何千回も) 変更され、他にもアクティブなテーブルがあるため、このシナリオでは時間の経過とともにディスクのレイアウトが非常に断片化されます。私の現在のアイデアは、スタックテーブル全体を事前に割り当ててから、トップ インデックスとUPDATE
s だけを使用することです。
とにかく、私の特定の問題に加えて(それに対する解決策もあればいいのですが)、できれば* nixシステムで、MyISAMとInnoDBの両方のMySQLデータファイルの最適化を(可能であれば)減らす、または排除するために使用される方法は何ですか? ローデバイス は少なくともInnoDBのソリューションですか?
heap-memory - 非常に大きな db4o データベース ファイルの最適化
最適化しようとしている非常に大きな (102GB) db4o .yap ファイルがあります。Java ヒープ領域エラーが発生し続けます。これを防ぐために設定を微調整するためにできることはありますか?私はすでに objectCommitFrequency を 10000 に設定しています。これを実行するために Java プロセスに 3 ギガのメモリを割り当てていますが、それでもクラッシュします。
java - db4o デフラグは、データベース内のすべてのオブジェクトを削除します
私はdb4o 8.0を使用しています。db4odatabase ファイルのサイズは 21MB です。データベースには次のオブジェクトがあります。
10000 件の PostedMessage をすべて削除します。次に、db4o データベースの最適化を試みます。次のコードはデフラグに使用されます。
db4oDatabase のファイル サイズは 21 Kb に戻ると予想しています。また、db4oDatabase には 1 つの User オブジェクトが含まれます。ただし、上記のコードを実行すると、db4odatabase は完全に空になります。なぜそのようなことが起こっているのですか?
削除されなかった他のオブジェクト (この場合は 1 ユーザー オブジェクト) が失われないようにするにはどうすればよいですか? db4o データベースで最適化を行う正しい方法は何ですか?