1

そのため、アプリケーションの起動時間を短縮しようとしていますが、取り組むべき主要なボトルネックを特定しました。各 Web サービス クライアント クラスは、インスタンス化するのに永遠に 1 日かかります。調査の結果、これは完全に、GenerateXMLMappings を実行している SoapHttpClientProtocol が原因であることが明らかになりました。これに関する情報の検索を開始し、この SO 投稿を見つけました。Slow SoapHttpClientProtocol コンストラクター

私の問題はそこで話されていたことを手紙に反映していたので、私はトランペットを鳴らす準備ができていました. 最初の投稿に記載されているすべての手順を実行して、sgen を使用してシリアライザー dll を事前生成し、コードからさまざまなタグを削除して、それを通常の dll に組み込みました。 Web 参照に)。しかし、結局のところ、アプリケーションのプロファイルを作成しても違いはわかりません。SoapHttpClientProtocol コンストラクターの一部として GenerateXMLMappings を実行するために、まだ膨大な時間が費やされています。

実際にカスタム Web サービス クライアント DLL を使用していることを確認しました。また、少なくとも XmlSerializers dll を探していることも確認しました (ファイルを含めない場合、filenotfound が吐き出されていることがわかります)。

SoapHttpClientProtocol コンストラクターが何をする必要があるかを決定する方法についての詳細な情報を誰かが持っていますか? プロセス全体がブラックボックス化されており、実際に内部で何が起こっているかを確認する良い方法がないため、これは本当にイライラする問題です.

事前に助けてくれてありがとう-私はこの壁に完全に反対しています。

4

1 に答える 1

0

私はこれをときどき叩きます。喜んで推測しますが、推測は通常間違っています。

問題の真の原因を突き止めるために、IDE でアプリを実行し、速度が遅いときに数回一時停止して、アプリの動作を確認しました。それがこのテクニックです。

OK、ここに私が見た推測がありますが、あなたにとってはおそらく間違っています.

  1. ロード中にリソースから文字列を取得しています。
  2. データ構造の構築中に通知が異常終了しました。
  3. データが空の場合でも、サードパーティのグリッド/コントロールを初期化します。
  4. 思った以上に XML の解析/書き込み。
  5. 思った以上に圧縮/解凍。
于 2010-08-25T19:57:04.070 に答える