0

VSS 相互運用 DLL と .NET を使用して新しいサブプロジェクトを作成し、各プロジェクトに多数の xml ファイルを保存しています。

基本的に、プロセスは同じドメインの VSS に接続します。メインの定義済みプロジェクトの下に 1000 以上のサブプロジェクトを作成する必要があり、それぞれについて、データベースから xml ファイルを取得し、それを一時的な場所のファイル ストリームに書き込み、VSS に追加します。

  • サブプロジェクトは既に存在している可能性があるため、VSSItem が既に存在するかどうかもチェックし、次にすべての VSSItems をチェックして、保存しようとしているファイル名があるかどうかを確認します。
    • はいの場合は、ファイルを一時的な場所にチェックアウトし、新しいファイルをチェックインして、チェックアウトした一時的な場所からファイルを削除します。
    • それ以外の場合は、新しいファイルを追加します
  • 最後に、ファイルストリームが保存された一時的な場所を削除します。

1000以上のアイテムに対して上記のプロセスを実行する必要があります。このプロセス全体に約 20 分かかります。プロセスは非同期であるため、独自のスレッドで実行されます。

ここでは WPF と WCF を使用しているため、WPF の構成ファイルでタイムアウトを増やすことで回避できる SendTimeout を受け取ることがあります。

私の質問は、VSS 処理はいつもとても遅いのですか?どうすれば高速化できるでしょうか?

コードを見直してみましたが、あまり改善する方法が見つかりませんでした。どんな助けでも大歓迎です。

4

1 に答える 1

0

正直なところ、私は職場で VSS を使用しており、同様のプロセスを実行するために c# でアプリを作成しましたが、それは単なる VSS であるという結論に達しました。あなたの質問に対する私の答え: VSS は、その主な目的がチェックイン/チェックアウト機能によってソース コードを制御することであり、時間を劇的に短縮するためにコードを変更できるもの (私が知っていること) がほとんどないため、非常に遅いです。Blam が言及したことで、時間は稼げるかもしれませんが、半分にはなりません。

于 2012-09-24T15:55:19.317 に答える