Download
Entwicklung
Konto
Download
Entwicklung
Anmelden
Vergessen Konto/Passwort
Konto erstellen
Sprache
Hilfe
Sprache
Hilfe
×
Anmelden
Anmeldename
Passwort
×
Vergessen Konto/Passwort
Übersetzungsstatus von Deutsch
Kategorie:
Software
Personen
PersonalForge
Magazine
Wiki
Suche
OSDN
>
Finden Software
>
System
>
TERASOLUNA Framework
>
Foren
>
Offene Diskussion
>
【.NET Client】データセット変換機能とバインド使用時の速度について
TERASOLUNA Framework
Beschreibung
Projekt Zusammenfassung
Entwickler-Dashboard
Web-Seite
Entwickler
Bildergalerie
RSS Feed-Liste
Aktivität
Statistiken
Historie
Downloads
Aller Releases-Liste
Statistiken
Quellcode
Quellcode-Repositorys-Liste
Subversion
Repository ansehen
Ticket
Ticket-Liste
Liste der Meilensteine
Typenliste
Komponentenliste
Liste der zuletzt benutzten Tickets/RSS
Neue Ticket abschicken
Dokumente
Wiki
Titelseite
Titel-Index
Kürzliche Änderungen
Doc Mgr
List Docs
Kommunikation
Foren
Forum-Liste
Offene Diskussion (1277)
Mailinglisten
Alle Mailinglisten
terasoluna-information
Neuigkeiten
Foren:
Offene Diskussion
(Thread #23878)
Zurück zur Thread-Liste
RSS
【.NET Client】データセット変換機能とバインド使用時の速度について (2009-09-11 13:23 by
Anonym
#45823)
Antworten
Ticket erstellen
こんにちは、
表題の件についてなのですが、
画面のデータセットの内容は、
テーブル数:10個
カラム数(平均):10個で、
データ行数:1~最大でも10ほど
そのうちの3,4割をTextBox, NumericUpDown, ComboBoxにバインドしています。
値はサーバアプリがDBから取得し、Converterでクライアントにデータコピーし画面に表示させています。
この処理を画面起動時に行っているのですが、5秒ほどかかってしまっています。
バインドしているコントロールを減らしてみたり、Convertする列数を減らしてみたりしたのですが、
どちらにもそこそこ時間がかかっているような感じでした。
何か処理速度を上げるような方法はあるのでしょうか?よろしくお願いします。
Reply to #45823
×
Subjekt
Körper
Reply To Message #45823 > こんにちは、 > 表題の件についてなのですが、 > 画面のデータセットの内容は、 > テーブル数:10個 > カラム数(平均):10個で、 > データ行数:1~最大でも10ほど > そのうちの3,4割をTextBox, NumericUpDown, ComboBoxにバインドしています。 > > 値はサーバアプリがDBから取得し、Converterでクライアントにデータコピーし画面に表示させています。 > この処理を画面起動時に行っているのですが、5秒ほどかかってしまっています。 > バインドしているコントロールを減らしてみたり、Convertする列数を減らしてみたりしたのですが、 > どちらにもそこそこ時間がかかっているような感じでした。 > 何か処理速度を上げるような方法はあるのでしょうか?よろしくお願いします。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Anmelden
Nickname
Vorschau
Eintrag
Abbrechen
RE: 【.NET Client】データセット変換機能とバインド使用時の速度について (2009-09-14 10:53 by
tatsumihr
#45897)
Antworten
Ticket erstellen
> バインドしているコントロールを減らしてみたり、Convertする列数を減らしてみたりしたのですが、
> どちらにもそこそこ時間がかかっているような感じでした。
このような対応をしても実行時間が変わらないということは、
画面データセットやConverterとは関係ないところで処理が遅い可能性があります。
たとえば、初回実行時の.NET Framework自体のロード時間、
通信時間、サーバ側の処理時間、DBアクセス時間など。
いただいた情報からだけでは、判断が難しいです。
実際にどの処理にどれくらいの時間がかかっているかは分からないでしょうか?
Visual Studio Team Edition for Developers のパフォーマンス ツールなどを使って、
処理の遅いクラスやメソッドのあたりをつけていただけないでしょうか?
<
http://msdn.microsoft.com/ja-jp/library/z9z62c29(VS.80).aspx>
Reply to
#45823
Reply to #45897
×
Subjekt
Körper
Reply To Message #45897 > > バインドしているコントロールを減らしてみたり、Convertする列数を減らしてみたりしたのですが、 > > どちらにもそこそこ時間がかかっているような感じでした。 > このような対応をしても実行時間が変わらないということは、 > 画面データセットやConverterとは関係ないところで処理が遅い可能性があります。 > > たとえば、初回実行時の.NET Framework自体のロード時間、 > 通信時間、サーバ側の処理時間、DBアクセス時間など。 > > いただいた情報からだけでは、判断が難しいです。 > 実際にどの処理にどれくらいの時間がかかっているかは分からないでしょうか? > Visual Studio Team Edition for Developers のパフォーマンス ツールなどを使って、 > 処理の遅いクラスやメソッドのあたりをつけていただけないでしょうか? > <http://msdn.microsoft.com/ja-jp/library/z9z62c29(VS.80).aspx>
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Anmelden
Nickname
Vorschau
Eintrag
Abbrechen
RE: 【.NET Client】データセット変換機能とバインド使用時の速度について (2009-09-15 13:00 by
Anonym
#45907)
Antworten
Ticket erstellen
返信ありがとうございます。
> いただいた情報からだけでは、判断が難しいです。
記述が不足しており、申し訳ないです。
> 実際にどの処理にどれくらいの時間がかかっているかは分からないでしょうか?
> Visual Studio Team Edition for Developers のパフォーマンス ツールなどを使って、
> 処理の遅いクラスやメソッドのあたりをつけていただけないでしょうか?
問題の画面は、ログイン(サーバでDB検索で認証あり)->メニュー画面->
画面A,B,C・・・の画面A(他の画面よりデータ数、コントロール数が多め)なのですが、
画面Aのロードイベントで
~
ここから
EventController.Execute();
ここまで
~
で5秒ほどかかっています。
このイベントコントローラで行う、
サーバ側の処理(DBアクセスのみ以外の処理は行っていません)は、0.01や0.02秒かです。
これはパフォーマンスツール未使用(ローカルの開発用サーバでデバッグ実行)の数値です。
パフォーマンスツールを使用して実行してみました。
デバッグ実行とは異なり動作はかなり早いですが、(ツール実行だからだったらすみません)
画面AのFormForwarderのExecute、EventController.exe、その他が6:3:1の割合で時間がかかっているようです。
まだ情報不足な方だと思いますが、よろしくお願いします。
Reply to
#45897
Reply to #45907
×
Subjekt
Körper
Reply To Message #45907 > 返信ありがとうございます。 > > > いただいた情報からだけでは、判断が難しいです。 > 記述が不足しており、申し訳ないです。 > > > 実際にどの処理にどれくらいの時間がかかっているかは分からないでしょうか? > > Visual Studio Team Edition for Developers のパフォーマンス ツールなどを使って、 > > 処理の遅いクラスやメソッドのあたりをつけていただけないでしょうか? > > 問題の画面は、ログイン(サーバでDB検索で認証あり)->メニュー画面-> > 画面A,B,C・・・の画面A(他の画面よりデータ数、コントロール数が多め)なのですが、 > 画面Aのロードイベントで > ~ > ここから > EventController.Execute(); > ここまで > ~ > で5秒ほどかかっています。 > このイベントコントローラで行う、 > サーバ側の処理(DBアクセスのみ以外の処理は行っていません)は、0.01や0.02秒かです。 > これはパフォーマンスツール未使用(ローカルの開発用サーバでデバッグ実行)の数値です。 > > パフォーマンスツールを使用して実行してみました。 > デバッグ実行とは異なり動作はかなり早いですが、(ツール実行だからだったらすみません) > 画面AのFormForwarderのExecute、EventController.exe、その他が6:3:1の割合で時間がかかっているようです。 > > まだ情報不足な方だと思いますが、よろしくお願いします。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Anmelden
Nickname
Vorschau
Eintrag
Abbrechen
RE: 【.NET Client】データセット変換機能とバインド使用時の速度について (2009-09-15 17:55 by
tatsumihr
#45916)
Antworten
Ticket erstellen
情報が少ないので推測で回答いたします。
.NETのWindowsアプリケーションで性能が出ないケースは、
データアクセスで取得したデータ量が非常に多い場合などがあります。
今回のケースで画面データセットやビジネスロジック入出力データセットに数100行のデータが格納されている場合などは、
まずは業務仕様そのものを見直して、もっとサーバから取得するデータ量を減らせないかどうかを検討してください。
どうしても減らせない場合は、(1)ボトルネックとなっている処理をカスタマイズすることや、
(2)同期処理でのデータ取得ではなく、非同期処理にすることで見た目上の動作を改善するという方法があります。
(1)ボトルネック処理のカスタマイズ
ボトルネックとなっている処理が何かが分かれば、改善案は提示できると思いますが、
現状の情報ではどう直せば性能改善する可能性があるという案を出すことは難しいです。
まずはEventController中の何の処理が遅いのかを把握する必要があります。
入力値検証が遅いのか、データセット変換が遅いのか、ビジネスロジックが遅いのか、通信が遅いのか、など。
(2)非同期処理によるデータの取得
画面遷移直後に同期処理(EventController.Executeメソッド)によってデータを取得するのではなく、
非同期処理(EventController.ExecuteAsyncメソッド)によってデータを取得するという方法もあります。
根本的な解決にはなりませんが、ユーザの操作性を損なわないようにはできると思います。
ただし、非同期でのデータ取得が完了するまで、表示した画面のボタンを押下できないようにするなどは必要かと思います。
非同期処理を利用する場合は、十分注意して実装してください。
> パフォーマンスツールを使用して実行してみました。
> デバッグ実行とは異なり動作はかなり早いですが、(ツール実行だからだったらすみません)
> 画面AのFormForwarderのExecute、EventController.exe、その他が6:3:1の割合で時間がかかっているようです。
デバッグ実行でなければ動作は問題ないのでしょうか?
通常、パフォーマンスツールからの起動で実行速度が変わることはありません。
もしツールからの実行なら問題ないのであれば、環境によって実行速度が違うということになります。
デバッグ実行時にログなどを大量に出力していないでしょうか?もう一度ご確認ください。
Reply to
#45907
Reply to #45916
×
Subjekt
Körper
Reply To Message #45916 > 情報が少ないので推測で回答いたします。 > > .NETのWindowsアプリケーションで性能が出ないケースは、 > データアクセスで取得したデータ量が非常に多い場合などがあります。 > 今回のケースで画面データセットやビジネスロジック入出力データセットに数100行のデータが格納されている場合などは、 > まずは業務仕様そのものを見直して、もっとサーバから取得するデータ量を減らせないかどうかを検討してください。 > > どうしても減らせない場合は、(1)ボトルネックとなっている処理をカスタマイズすることや、 > (2)同期処理でのデータ取得ではなく、非同期処理にすることで見た目上の動作を改善するという方法があります。 > > (1)ボトルネック処理のカスタマイズ > ボトルネックとなっている処理が何かが分かれば、改善案は提示できると思いますが、 > 現状の情報ではどう直せば性能改善する可能性があるという案を出すことは難しいです。 > まずはEventController中の何の処理が遅いのかを把握する必要があります。 > 入力値検証が遅いのか、データセット変換が遅いのか、ビジネスロジックが遅いのか、通信が遅いのか、など。 > > (2)非同期処理によるデータの取得 > 画面遷移直後に同期処理(EventController.Executeメソッド)によってデータを取得するのではなく、 > 非同期処理(EventController.ExecuteAsyncメソッド)によってデータを取得するという方法もあります。 > 根本的な解決にはなりませんが、ユーザの操作性を損なわないようにはできると思います。 > ただし、非同期でのデータ取得が完了するまで、表示した画面のボタンを押下できないようにするなどは必要かと思います。 > 非同期処理を利用する場合は、十分注意して実装してください。 > > > > パフォーマンスツールを使用して実行してみました。 > > デバッグ実行とは異なり動作はかなり早いですが、(ツール実行だからだったらすみません) > > 画面AのFormForwarderのExecute、EventController.exe、その他が6:3:1の割合で時間がかかっているようです。 > デバッグ実行でなければ動作は問題ないのでしょうか? > 通常、パフォーマンスツールからの起動で実行速度が変わることはありません。 > もしツールからの実行なら問題ないのであれば、環境によって実行速度が違うということになります。 > デバッグ実行時にログなどを大量に出力していないでしょうか?もう一度ご確認ください。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Anmelden
Nickname
Vorschau
Eintrag
Abbrechen
RE: 【.NET Client】データセット変換機能とバインド使用時の速度について (2009-09-15 21:49 by
Anonym
#45922)
Antworten
Ticket erstellen
返信ありがとうございます。
> デバッグ実行でなければ動作は問題ないのでしょうか?
> 通常、パフォーマンスツールからの起動で実行速度が変わることはありません。
> もしツールからの実行なら問題ないのであれば、環境によって実行速度が違うということになります。
> デバッグ実行時にログなどを大量に出力していないでしょうか?もう一度ご確認ください。
Visual Studioから実行すると、速度は遅いままでした。(デバッグ、リリース版ともに)
クライアントのexeファイルを直接実行し、サーバアプリをIISに設置し、実行すると速度があがりました。
パフォーマンスツールのときは以前早いままでした。
Reply to
#45916
Reply to #45922
×
Subjekt
Körper
Reply To Message #45922 > 返信ありがとうございます。 > > > デバッグ実行でなければ動作は問題ないのでしょうか? > > 通常、パフォーマンスツールからの起動で実行速度が変わることはありません。 > > もしツールからの実行なら問題ないのであれば、環境によって実行速度が違うということになります。 > > デバッグ実行時にログなどを大量に出力していないでしょうか?もう一度ご確認ください。 > > Visual Studioから実行すると、速度は遅いままでした。(デバッグ、リリース版ともに) > クライアントのexeファイルを直接実行し、サーバアプリをIISに設置し、実行すると速度があがりました。 > パフォーマンスツールのときは以前早いままでした。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Anmelden
Nickname
Vorschau
Eintrag
Abbrechen
RE: 【.NET Client】データセット変換機能とバインド使用時の速度について (2009-09-16 10:19 by
tatsumihr
#45931)
Antworten
Ticket erstellen
> Visual Studioから実行すると、速度は遅いままでした。(デバッグ、リリース版ともに)
> クライアントのexeファイルを直接実行し、サーバアプリをIISに設置し、実行すると速度があがりました。
> パフォーマンスツールのときは以前早いままでした。
フレームワークやアプリの作りの問題というよりも、開発環境の問題ではないでしょうか?
Visual StudioやEclipseを複数立ち上げてデバッグ実行すると、
どうしても開発PCへの負荷は高くなります。
開発時はPCのメモリを増設するなどで対応し、
性能測定時はデバッグ実行ではなくて、性能測定用の環境で実行してください。
それでもどうしても性能が出ない場合は、プロファイリングを行い、
ボトルネックとなっている処理を見直すことになります。
以上、よろしくお願いいたします。
Reply to
#45922
Reply to #45931
×
Subjekt
Körper
Reply To Message #45931 > > Visual Studioから実行すると、速度は遅いままでした。(デバッグ、リリース版ともに) > > クライアントのexeファイルを直接実行し、サーバアプリをIISに設置し、実行すると速度があがりました。 > > パフォーマンスツールのときは以前早いままでした。 > > フレームワークやアプリの作りの問題というよりも、開発環境の問題ではないでしょうか? > Visual StudioやEclipseを複数立ち上げてデバッグ実行すると、 > どうしても開発PCへの負荷は高くなります。 > 開発時はPCのメモリを増設するなどで対応し、 > 性能測定時はデバッグ実行ではなくて、性能測定用の環境で実行してください。 > それでもどうしても性能が出ない場合は、プロファイリングを行い、 > ボトルネックとなっている処理を見直すことになります。 > > 以上、よろしくお願いいたします。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Anmelden
Nickname
Vorschau
Eintrag
Abbrechen