SlideShare a Scribd company logo
ASP.NETサイト
パフォーマンス改善
ジョニー(Joni)
 Windows
 VB6, VBA, Java (Swing), Flex,
 C/C++ (Win32, MFC, COM, wxWidgets),
 Windows Forms (VB.NET, C#), WPF, Windows Store
Apps
 AS/400
 RPG, C
 Android
 Java, native library (C/C++)
 Web
 ASP, PHP, Java, ASP.NET Web Forms, ASP.NET MVC,
 ASP.NET Core
 Inspired By
 Bruce Eckel, Anders Hejlsberg, Mark Russinovich,
 Scott Hanselman, Jon Skeet, Ben Adams​, …
About
myself
Agenda
 初期表示3.3分ASP.NET MVC 5サイトを3秒へ改善した件
(だけw)
初期表示3.3分
ASP.NET MVC 5サイト
を3秒へ改善した件
初期表示が
3.3分の
サイトの話
改善No. 1
DotNetCompilerPlatform の最新化
当時の参考ブログ:
https://blogs.msdn.microsoft.com/webdev/2016/09/20/
announcing-the-dotnetcompilerplatform-1-0-2-release/
改善No. 2
IIS Application Initialization
手順:
https://docs.microsoft.com/en-us/iis/get-started/whats-
new-in-iis-8/iis-80-application-initialization
改善No. 3
Debugビルド ⇒ Releaseビルド (DEV, STGサーバー)
改善No. 4
Global.asaxから使わないメソッドの削除
・AreaRegistration.RegisterAllAreas()
※とにかく使わないメソッドを削除!w
改善No. 4
改善No. 4
改善No. 5
Bundling and Minification
参考:
https://docs.microsoft.com/en-
us/aspnet/mvc/overview/performance/bundling-and-
minification
改善No. 6
隠れているNullReferenceExceptionを発生させない
ASP.NET MVCはNullReferenceExceptionを潰している件
https://www.slideshare.net/JoniZhang2/aspnet-mvcnullreferenceexception
改善No. 7A
(候補)
Azure WebRole 起動時の Precompile
改善No. 7B
(採用)
ビルド時の事前 Precompile
下記のライブラリをnugetより導入:
・RazorGenerator.Mvc
https://github.com/RazorGenerator/RazorGenerator/wiki/Using-
RazorGenerator.Mvc
・RazorGenerator.MsBuild
https://github.com/RazorGenerator/RazorGenerator/wiki/Using-
RazorGenerator.MsBuild
対象.csprojにビルド前のコマンドを追加:
Process Explorerで確認
Precompile無しの場合
結果
3.3分 (198秒) vs 3秒
6600%の改善
ご清聴ありがとうございました
Twitter: @joni2nja
Blog: https://medium.com/@joni2nja

More Related Content

PDF
WebAssemblyの紹介
PDF
Galage labsサーバー部6U自己紹介
PDF
Cpi mega mix
PDF
a-blog cmsのインポート機能を使いこなす
PDF
a-sap09「a-blog cmsとWordPress」
PPT
Csawわーくしょっぷ(仮)
PPT
Flash Playerの作り方
PDF
PWA Beginner(最新版:文字抜けを修正)
WebAssemblyの紹介
Galage labsサーバー部6U自己紹介
Cpi mega mix
a-blog cmsのインポート機能を使いこなす
a-sap09「a-blog cmsとWordPress」
Csawわーくしょっぷ(仮)
Flash Playerの作り方
PWA Beginner(最新版:文字抜けを修正)

What's hot (20)

PDF
a-blog cms Training Camp 2017 Spring「a-blog cms用テーマ echo_zeroについて」
PPTX
サーバ・VM+コンテナ管理Tips@オンライン合宿2020
PDF
Concurrent Programm in JavaScript
PPTX
Concurrent Programming in JavaScript
PDF
イマドキのCMSトレンドからWeb運用を再考する
PDF
これから始める人のためのjQuery入門 先生:大竹 孔明
PDF
CSS Nite LP26 CodeKitで始める次世代Web制作
PPTX
Microsoft loves PHP WebMatrix + Windows Azure
PDF
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
PDF
タスクランナー導入 〜とあるWordPress制作環境〜
PDF
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
PDF
これからのCMSマーケットトレンドとPHP (for fukuoka.php)
PPTX
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
PDF
WordVolcano - from the dark side - handson
KEY
HTML5でスマートフォン開発の理想と現実
PDF
a-blog cms の基本 福岡版
PPTX
人のブラウザでクロールする
PDF
第10回word bench熊本
PDF
【CodeCamp】JavaScriptの教科書サンプル
PDF
うわ…私のEmacs力、低すぎ...?
a-blog cms Training Camp 2017 Spring「a-blog cms用テーマ echo_zeroについて」
サーバ・VM+コンテナ管理Tips@オンライン合宿2020
Concurrent Programm in JavaScript
Concurrent Programming in JavaScript
イマドキのCMSトレンドからWeb運用を再考する
これから始める人のためのjQuery入門 先生:大竹 孔明
CSS Nite LP26 CodeKitで始める次世代Web制作
Microsoft loves PHP WebMatrix + Windows Azure
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
タスクランナー導入 〜とあるWordPress制作環境〜
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
これからのCMSマーケットトレンドとPHP (for fukuoka.php)
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
WordVolcano - from the dark side - handson
HTML5でスマートフォン開発の理想と現実
a-blog cms の基本 福岡版
人のブラウザでクロールする
第10回word bench熊本
【CodeCamp】JavaScriptの教科書サンプル
うわ…私のEmacs力、低すぎ...?
Ad

More from Joni (13)

PPTX
ASP.NET Core の ​ パフォーマンスを支える ​ I/O Pipeline と Channel
PPTX
.NET Framework で ​C# 8って使える? ​YESとNO!
PPTX
.NET Core 3.0 で Blazor を使用した​フルスタック C# Web アプリ​の構築
PPTX
Fiddler 使ってますか?
PPTX
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
PPT
Introduction to .NET
PPT
Tips and Tricks of Developing .NET Application
PPT
Introduction to Html
PPT
C#
PPT
Asp #1
PPT
Introduction to ASP.NET
PPT
Asp #2
PPTX
ASP.NET MVCはNullReferenceExceptionを潰している件
ASP.NET Core の ​ パフォーマンスを支える ​ I/O Pipeline と Channel
.NET Framework で ​C# 8って使える? ​YESとNO!
.NET Core 3.0 で Blazor を使用した​フルスタック C# Web アプリ​の構築
Fiddler 使ってますか?
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Introduction to .NET
Tips and Tricks of Developing .NET Application
Introduction to Html
C#
Asp #1
Introduction to ASP.NET
Asp #2
ASP.NET MVCはNullReferenceExceptionを潰している件
Ad

ASP.NET パフォーマンス改善