SlideShare a Scribd company logo
2019年7月19日
みんなのC# #2
データソースにLinqDataSourceを使った場合のGridViewの高速化
本社事業部 横山.M
© 2019 Core Concept Technologies Inc.
1. 自己紹介
2. 用意するデータ
3. 実現したいこと
4. 愚直に実装した場合
5. ObjectDataSourceで置き換えて高速化した場合
6. 変わった点
7. 置き換えが可能かつ有効な場面
8. まとめ
Index
1CONFIDENTIAL
© 2019 Core Concept Technologies Inc.
本社(HQ)事業部 横山.M
いつもはGCP上でサーバレスのPythonやJavaの
モジュール書いてます!
最近は新人にオブジェクト指向とか教えてます!
好きな言語:C++、CUDA
1. 自己紹介
2CONFIDENTIAL
© 2019 Core Concept Technologies Inc.
・Employeeテーブル上
に、Idと氏名と氏名の
仮名、誕生日のカラム
を持つ。
・21500件くらい。
2. 用意するデータ
© 2019 Core Concept Technologies Inc.
・実現したいこと
LINQ to SQLで取得したデータをこねこね(任意
の操作)したあと、GridViewにバインドする。
3. 実現したいこと
© 2019 Core Concept Technologies Inc.
・GridViewのDataSourceをLinqDataSourceに指
定して、OnSelectingイベントで、データをこね
こねする操作を挿入する。
4. 愚直に実装した場合
© 2019 Core Concept Technologies Inc.
4. 愚直に実装した場合
© 2019 Core Concept Technologies Inc.
4. 愚直に実装した場合
© 2019 Core Concept Technologies Inc.
4. 愚直に実装した場合
© 2019 Core Concept Technologies Inc.
5. ObjectDataSourceで置き換えて高速化した場合
© 2019 Core Concept Technologies Inc.
5. ObjectDataSourceで置き換えて高速化した場合
© 2019 Core Concept Technologies Inc.
5. ObjectDataSourceで置き換えて高速化した場合
© 2019 Core Concept Technologies Inc.
5. ObjectDataSourceで置き換えて高速化した場合
© 2019 Core Concept Technologies Inc.
・見た目と振る舞い自体は変わってません。
・速度が大きく変わりました。
6. 変わった点
© 2019 Core Concept Technologies Inc.
データ量が少ないと分かりづらいため、回線を
500Kbpsに絞ってFireFoxのプロファイラで計測
しました。
6. 変わった点
© 2019 Core Concept Technologies Inc.
Before:2.85秒
6. 変わった点
After:0.06秒
© 2019 Core Concept Technologies Inc.
・操作がSQLで完結する場合
・データ件数が極端に多い場合
・レコード一件あたりのデータが重い場合
7. 置き換えが可能かつ有効な場面
© 2019 Core Concept Technologies Inc.
・LinqDataSourceをObjectDataSourceに可能な
ときは置き換えると高速化できる。
7. まとめ
データソースにLinqDataSourceを使った場合のGridViewの高速化

More Related Content

PPTX
Pythonで簡単な統計・分析をしてみよう!
PPTX
Google Colab環境でPythonスクレイピング
PPTX
GPUいらずの高速動画異常検知
PPTX
Pythonで簡単動画解析
PPTX
可視化の先にあるものとは
PPTX
IoTで成果を出す
PPTX
3Dモデル類似検索
PPTX
データをどこに溜めよう?ローカル?クラウド?どのデータベース?
Pythonで簡単な統計・分析をしてみよう!
Google Colab環境でPythonスクレイピング
GPUいらずの高速動画異常検知
Pythonで簡単動画解析
可視化の先にあるものとは
IoTで成果を出す
3Dモデル類似検索
データをどこに溜めよう?ローカル?クラウド?どのデータベース?

What's hot (20)

PDF
グリーのセキュリティ戦略:組織改革成功の秘訣と新たな課題への取り組み
PPTX
IoT導入のお客様要望とその事例(データ取得編)
PPTX
React vtecx20170920
PDF
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
PDF
WeDX Flow Hands-on
PDF
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
PDF
工場内レガシー機器のAIを利用したIoT化とエッジAIの可能性
PPTX
de:code 2019登壇資料:MLOpsによるAIモデルの作り方
PDF
Azure IoT Edge for Linux on Windows (EFLOW)を学ぶ!
PDF
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
PDF
Wordpress on gae se
PDF
What you can see with Azure Percept
PDF
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアプリ「フルクル」」
PDF
MLP-Mixer: An all-MLP Architecture for Vision
PDF
20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
PDF
Node-REDをIoTビジネスに適用するために苦労した3つの話
PDF
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
PPTX
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
PPTX
DLL Community Update 10月版
PPTX
menta_lt
グリーのセキュリティ戦略:組織改革成功の秘訣と新たな課題への取り組み
IoT導入のお客様要望とその事例(データ取得編)
React vtecx20170920
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
WeDX Flow Hands-on
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
工場内レガシー機器のAIを利用したIoT化とエッジAIの可能性
de:code 2019登壇資料:MLOpsによるAIモデルの作り方
Azure IoT Edge for Linux on Windows (EFLOW)を学ぶ!
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Wordpress on gae se
What you can see with Azure Percept
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアプリ「フルクル」」
MLP-Mixer: An all-MLP Architecture for Vision
20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
Node-REDをIoTビジネスに適用するために苦労した3つの話
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
DLL Community Update 10月版
menta_lt
Ad

More from Core Concept Technologies (20)

PPTX
センシングサイエンティストが経費精算を自動化したらこうなった
PPTX
C#で速度を極めるいろは
PPTX
コンソールアプリケーションでDIを使う
PPTX
開発環境をWindowsからMacに移行してみた話
PPTX
Linqの速度測ってみた
PPTX
ロボットアームをPythonで動かす
PPTX
Pythonでディープラーニングをはじめるための一歩目
PPTX
ロボットと協働生活中に試行錯誤したこと
PPTX
固有表現抽出と適用例のご紹介
PPTX
深層強化学習入門
PPTX
なぜIoTプロジェクトは途中でとまってしまうのか。
PPTX
工場に!オフィスに!明日、お安く、安全に導入できるセンサー紹介します
PPTX
AIによる簡単レコメンドシステム実装
PPTX
Orizuru IoTは何を変えたのか
PPTX
データを活用して何を実現してきたか?
PPTX
AWSで実践する機械学習
PPTX
付加価値を生み出すデータの可視化
PPTX
おもちゃのロボットアームの制御精度をちょっとだけ上げてみました(ちょっとだけよ♡)
PPTX
テクノロジの隆盛
PPTX
なるべく楽して展示ブースの人数の監視システムを作ろうとした話
センシングサイエンティストが経費精算を自動化したらこうなった
C#で速度を極めるいろは
コンソールアプリケーションでDIを使う
開発環境をWindowsからMacに移行してみた話
Linqの速度測ってみた
ロボットアームをPythonで動かす
Pythonでディープラーニングをはじめるための一歩目
ロボットと協働生活中に試行錯誤したこと
固有表現抽出と適用例のご紹介
深層強化学習入門
なぜIoTプロジェクトは途中でとまってしまうのか。
工場に!オフィスに!明日、お安く、安全に導入できるセンサー紹介します
AIによる簡単レコメンドシステム実装
Orizuru IoTは何を変えたのか
データを活用して何を実現してきたか?
AWSで実践する機械学習
付加価値を生み出すデータの可視化
おもちゃのロボットアームの制御精度をちょっとだけ上げてみました(ちょっとだけよ♡)
テクノロジの隆盛
なるべく楽して展示ブースの人数の監視システムを作ろうとした話
Ad

データソースにLinqDataSourceを使った場合のGridViewの高速化

  • 2. © 2019 Core Concept Technologies Inc. 1. 自己紹介 2. 用意するデータ 3. 実現したいこと 4. 愚直に実装した場合 5. ObjectDataSourceで置き換えて高速化した場合 6. 変わった点 7. 置き換えが可能かつ有効な場面 8. まとめ Index 1CONFIDENTIAL
  • 3. © 2019 Core Concept Technologies Inc. 本社(HQ)事業部 横山.M いつもはGCP上でサーバレスのPythonやJavaの モジュール書いてます! 最近は新人にオブジェクト指向とか教えてます! 好きな言語:C++、CUDA 1. 自己紹介 2CONFIDENTIAL
  • 4. © 2019 Core Concept Technologies Inc. ・Employeeテーブル上 に、Idと氏名と氏名の 仮名、誕生日のカラム を持つ。 ・21500件くらい。 2. 用意するデータ
  • 5. © 2019 Core Concept Technologies Inc. ・実現したいこと LINQ to SQLで取得したデータをこねこね(任意 の操作)したあと、GridViewにバインドする。 3. 実現したいこと
  • 6. © 2019 Core Concept Technologies Inc. ・GridViewのDataSourceをLinqDataSourceに指 定して、OnSelectingイベントで、データをこね こねする操作を挿入する。 4. 愚直に実装した場合
  • 7. © 2019 Core Concept Technologies Inc. 4. 愚直に実装した場合
  • 8. © 2019 Core Concept Technologies Inc. 4. 愚直に実装した場合
  • 9. © 2019 Core Concept Technologies Inc. 4. 愚直に実装した場合
  • 10. © 2019 Core Concept Technologies Inc. 5. ObjectDataSourceで置き換えて高速化した場合
  • 11. © 2019 Core Concept Technologies Inc. 5. ObjectDataSourceで置き換えて高速化した場合
  • 12. © 2019 Core Concept Technologies Inc. 5. ObjectDataSourceで置き換えて高速化した場合
  • 13. © 2019 Core Concept Technologies Inc. 5. ObjectDataSourceで置き換えて高速化した場合
  • 14. © 2019 Core Concept Technologies Inc. ・見た目と振る舞い自体は変わってません。 ・速度が大きく変わりました。 6. 変わった点
  • 15. © 2019 Core Concept Technologies Inc. データ量が少ないと分かりづらいため、回線を 500Kbpsに絞ってFireFoxのプロファイラで計測 しました。 6. 変わった点
  • 16. © 2019 Core Concept Technologies Inc. Before:2.85秒 6. 変わった点 After:0.06秒
  • 17. © 2019 Core Concept Technologies Inc. ・操作がSQLで完結する場合 ・データ件数が極端に多い場合 ・レコード一件あたりのデータが重い場合 7. 置き換えが可能かつ有効な場面
  • 18. © 2019 Core Concept Technologies Inc. ・LinqDataSourceをObjectDataSourceに可能な ときは置き換えると高速化できる。 7. まとめ