SlideShare una empresa de Scribd logo
1 de 26
.NET5は本当に速いのか検
証してみた
株式会社SAKURUG
エンジニアリングユニット
草場 友光
.NET ラボ 2021年7月
自己紹介
• 普段は主にWebFormsアプリの
保守のお仕事をしてます。
• 古めのシステムが多いので時
代に取り残されぬよう新しい
技術を一つでも入れるよう
日々努力しています。
• tomo_kusaba
宣伝
【VISION】ひとの可能性を開花させる企業であり続ける
VISIONに共感できる仲間募集中。
注意
• このセッションは個人的に調査したものであり、公正さについ
てはそれぞれで検証をしてください。
• 一環境での検証結果ということに留意してください。
Performance Improvements in .NET 5
• https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/
Performance Improvements in .NET 5
[Benchmark] public string ToString12345() => 12345.ToString();
[Benchmark] public string ToString123() => ((byte)123).ToString();
Method Runtime Mean Ratio Allocated
ToString12345 .NET FW 4.8 45.737 ns 1.00 40 B
ToString12345 .NET Core 3.1 20.006 ns 0.44 32 B
ToString12345 .NET 5.0 10.742 ns 0.23 32 B
ToString123 .NET FW 4.8 42.791 ns 1.00 32 B
ToString123 .NET Core 3.1 18.014 ns 0.42 32 B
ToString123 .NET 5.0 7.801 ns 0.18 32 B
Performance Improvements in .NET 5
[Benchmark]
public string Roundtrip()
{
byte[] bytes = Encoding.UTF8.GetBytes("this is a test");
return Encoding.UTF8.GetString(bytes);
}
Method Runtime Mean Ratio Allocated
Roundtrip .NET FW 4.8 113.69 ns 1.00 96 B
Roundtrip .NET Core 3.1 49.76 ns 0.44 96 B
Roundtrip .NET 5.0 36.70 ns 0.32 96 B
検証用アプリケーション
• CSVを読み込みDataGridViewに表示する
• みんな大好き、WindowsForms
• CSVパーサーはTextFieldParser
• 比較対象は、.NET5 vs .NET Framework4.5
検証1
• DataGridViewの動きのなめらかさ
• 約1300行のデータを読み込まる
• フルHD全画面表示の状態でスクロールしてみる
.NET Framework 4.5
.NET 5
検証1結論
• .NET 5のほうがだいぶスムーズな動きになってる
検証2
• CSV自体の読み込みの速さを検証
• MSTest2で計測
• テストデータは郵便番号辞書(124523件)
• (余談ですがこのテストデータで検証1をやると差が出ない)
検証2結果
時間
.NET 5 1.6秒
.NET Framework 4.5 2.1秒
1.3倍くらい速い!
検証3
• DBアクセスでも差は出るのか?
• みんな大好きOracleで比較
• 3865回+1回のSELECTで比較(キーはrowid)
• 同期処理
• アクセス先はVPN越し(PING平均-17ms)
Oracleドライバー バージョン
.NET 5 Oracle.ManagedDataAccess.Core 3.21.1
.NET Framework Oracle.ManagedDataAccess 19.11.0
インターネット
検証3
VPN 検証App
検証3結果
• さすがに、DBアクセス時間が主となると差は出にくい
• 従来通り地道にパフォーマンス改善するしか
時間
.NET 5 2.3分
.NET Framework 4.5 2.3分
検証3-2
• ネットワーク遅延の影響を排除した場合
Windows Server 2016
Hyper-V
Windows Server 2016
Oracle 18c XE
Windows 10
検証App
検証3-2結果
• ネットワーク時間を極力短くしていくと差が出てくる
時間
.NET 5 4.7秒
.NET Framework 4.5 5.3秒
検証4
• WebFormsとその移行先とされるBlazorとで比較した場合
• 定量的な比較は難しいので感覚的なレスポンス感で比較
• テストデータは郵便番号辞書
• DBからのSQLで検索したパターン
• CSVを読み込んでLINQで検索したパターン
検証4-ソースコード
• .NET Framework版(WebForms)
• https://github.com/tomokusaba/NetLab202107-4fw
• .NET 5版(Blazor)
• https://github.com/tomokusaba/NetLab202107-4Net5
検証4 – 動かしてみよう
• .NET Framework版(WebForms)
• https://musewiki.net/netlab202107-4fw/
• .NET5 (Blazor)
• https://musewiki.net/Netlab202107-Net5
動作環境
Windows Server2016 (IIS10.0)
Oracle 18c XE
Xeon E3-1225 v6 Hyper-V環境 2コア
Memory:6GB
参考
先ほどの高尾さんの話も速くなっている一つの要因
検証-4 結果
• 単純なDBアクセスだけだとそれほど変わらない。
• .NETの処理時間よりもDB側の処理時間の方が長い??
• 全体に、CSVやDBからのオブジェクト化やLinqについては.NET5の
方が速い
• この差を価値とみるかどうかは、それぞれ
結論
• 内部処理に関わるところはほぼすべて高速化されてる
• DBアクセスに関わるところは微妙
• 特に、コンソールアプリ・WindowsFormsは新規で作るのなら.NETへ
の移行がおすすめ。
• でも、個人的には手持ちのアプリがほぼすべてWebForms!
おしまい

Más contenido relacionado

La actualidad más candente

[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
de:code 2017
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
Teruo Adachi
 

La actualidad más candente (20)

[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
 
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
 
.NET Micro Framework (プラレールと電子工作)
.NET Micro Framework (プラレールと電子工作).NET Micro Framework (プラレールと電子工作)
.NET Micro Framework (プラレールと電子工作)
 
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
【XPagesDy】A-2_コムチュア_20131106_公開用
【XPagesDy】A-2_コムチュア_20131106_公開用【XPagesDy】A-2_コムチュア_20131106_公開用
【XPagesDy】A-2_コムチュア_20131106_公開用
 
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
 
高品質な Teams アプリを開発するためのポイント
高品質な Teams アプリを開発するためのポイント高品質な Teams アプリを開発するためのポイント
高品質な Teams アプリを開発するためのポイント
 
Windows クライアントのトラブルシューティングあれこれ
Windows クライアントのトラブルシューティングあれこれWindows クライアントのトラブルシューティングあれこれ
Windows クライアントのトラブルシューティングあれこれ
 
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
 
[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方
[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方
[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
 
ペアワークで持続的に成長するチームになろう!
ペアワークで持続的に成長するチームになろう!ペアワークで持続的に成長するチームになろう!
ペアワークで持続的に成長するチームになろう!
 
Windows 365 のテクノロジーとインフラストラクチャー
Windows 365 のテクノロジーとインフラストラクチャーWindows 365 のテクノロジーとインフラストラクチャー
Windows 365 のテクノロジーとインフラストラクチャー
 
LightSwitchで遊んでみた
LightSwitchで遊んでみたLightSwitchで遊んでみた
LightSwitchで遊んでみた
 
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
 
20151106ノーツコンソ大阪notesアプリのデザインをcoolに(公開用)
20151106ノーツコンソ大阪notesアプリのデザインをcoolに(公開用)20151106ノーツコンソ大阪notesアプリのデザインをcoolに(公開用)
20151106ノーツコンソ大阪notesアプリのデザインをcoolに(公開用)
 
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
 

Similar a .Netlab202107

企業と勉強会 @nifty エンジニアサポート
企業と勉強会 @nifty エンジニアサポート企業と勉強会 @nifty エンジニアサポート
企業と勉強会 @nifty エンジニアサポート
Daichi Morifuji
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会
ko ty
 
Agile japan2010 rakuten様プレゼン資料
Agile japan2010 rakuten様プレゼン資料Agile japan2010 rakuten様プレゼン資料
Agile japan2010 rakuten様プレゼン資料
Akiko Kosaka
 

Similar a .Netlab202107 (20)

.NET 7期待の新機能
.NET 7期待の新機能.NET 7期待の新機能
.NET 7期待の新機能
 
.NET 7におけるBlazorの新機能
.NET 7におけるBlazorの新機能.NET 7におけるBlazorの新機能
.NET 7におけるBlazorの新機能
 
.NET6新機能の振り返り
.NET6新機能の振り返り.NET6新機能の振り返り
.NET6新機能の振り返り
 
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
 
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
 
BlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようBlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみよう
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本
 
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
 
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
 
企業と勉強会 @nifty エンジニアサポート
企業と勉強会 @nifty エンジニアサポート企業と勉強会 @nifty エンジニアサポート
企業と勉強会 @nifty エンジニアサポート
 
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
 
Go azure tfs_service
Go azure tfs_serviceGo azure tfs_service
Go azure tfs_service
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会
 
Agile japan2010 rakuten様プレゼン資料
Agile japan2010 rakuten様プレゼン資料Agile japan2010 rakuten様プレゼン資料
Agile japan2010 rakuten様プレゼン資料
 

Más de TomomitsuKusaba

Más de TomomitsuKusaba (9)

ASP. NET Core 汎用ホスト概要
ASP. NET Core 汎用ホスト概要ASP. NET Core 汎用ホスト概要
ASP. NET Core 汎用ホスト概要
 
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppWeb開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
 
Microsoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめMicrosoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめ
 
NET 6で実装された新しいLINQ API
NET 6で実装された新しいLINQ APINET 6で実装された新しいLINQ API
NET 6で実装された新しいLINQ API
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor App
 
MuseLoid規格の音源自作について
MuseLoid規格の音源自作についてMuseLoid規格の音源自作について
MuseLoid規格の音源自作について
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼう
 
リモートワークで買ってよかったもの
リモートワークで買ってよかったものリモートワークで買ってよかったもの
リモートワークで買ってよかったもの
 
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor  WebAssemblyのすすめStatic Web AppsとBlazor  WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめ
 

Último

Último (11)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

.Netlab202107