計測データに基づくDateFormatterのキャッシュやformattedによる日付表示のパフォーマンス改善 by たいせい

iOSDC Japan 2023
採択
パンフ記事(4ページ)

計測データに基づくDateFormatterのキャッシュやformattedによる日付表示のパフォーマンス改善

SvEzs たいせい SvEzs
6

アプリ開発で日付を表示する場面は多くあります。DateFormatterはDate型のデータを任意のフォーマットでString型に変換することができます。
しかし、DateFormatterはインスタンス生成コストが高く、アプリのパフォーマンスを低下させてしまうことがあります。

この問題を防ぐには、DateFormatterをキャッシュして不要な生成コストを抑えるのが効果的です。

本記事では、DateFormatterのキャッシュによるパフォーマンス改善案についてコードを元に解説します。その上で、パフォーマンスを比較し、キャッシュによる違いを整理します。併せて、iOS15から追加されたformattedを使った場合、前述の実装とどう異なるかを比較します。そして、パフォーマンスに悪影響を与えることなくアプリ内で日付を表示するには、どのような実装が最適であるかを提案します。