Event : Visual Studio Users Community Japan #1
Date : 2019/09/14
ソフトウェア/サービス開発において最も後回しにされるものの代表が「パフォーマンスの向上」です。C#/.NET の最大の武器は開発生産性ですが、C# 7.0 以降はパフォーマンス向上のための機能追加が多数行われています。いくつかのポイントを押さえることで実装時からより高速なコードを書くことができるようになります。
このドキュメントでは、そんなポイントとなる箇所をふんだんにお届けします。
The document discusses a quality improvement project at Reality Inc. to reduce app startup time. It began with measuring startup sequences on iOS and Android to identify bottlenecks. This showed networking requests and initializing distributions were slow. Performance was then measured in user environments using Firebase and GCP tools. Startup times of over 6 seconds were found. The project aims to parallelize processes, remove unnecessary tasks, and speed up networking to reduce startup time through ongoing measurement and optimization.
Event : Visual Studio Users Community Japan #1
Date : 2019/09/14
ソフトウェア/サービス開発において最も後回しにされるものの代表が「パフォーマンスの向上」です。C#/.NET の最大の武器は開発生産性ですが、C# 7.0 以降はパフォーマンス向上のための機能追加が多数行われています。いくつかのポイントを押さえることで実装時からより高速なコードを書くことができるようになります。
このドキュメントでは、そんなポイントとなる箇所をふんだんにお届けします。
The document discusses a quality improvement project at Reality Inc. to reduce app startup time. It began with measuring startup sequences on iOS and Android to identify bottlenecks. This showed networking requests and initializing distributions were slow. Performance was then measured in user environments using Firebase and GCP tools. Startup times of over 6 seconds were found. The project aims to parallelize processes, remove unnecessary tasks, and speed up networking to reduce startup time through ongoing measurement and optimization.
27. 通信帯域の課題以外にも HTTP/1.1 には Head of line Blocking (HoLB) という課題もあります。
HTTP では基本的には、リクエストとレスポンスを1組とし、レスポンスが返るまでは次のリクエストを出せません。
この図では同時接続数を3としたときの図です。4つ目のリクエストを出す前には前の処理完了を待つ必要がある。
このように後続のリクエストがブロッキングされるのを (HTTPの) Head of line Blocking と呼びます。
(HTTP/1.1にはPIPELINEという機能もありましたが、現在はあまり使われていないようです。)