DateFormatterをstaticに定義してパフォーマンスを改善する。
DateFormatterはコストがかかる。 だから、for文とかで、何回も生成していると、とても遅くなる。 ってことで、staticに定義して、使いまわそうというお話。 extensionで。 [crayon-650deaa27d601025335684/] で、注意したいのが2点。 localeに"en_US_POSIX"を指定している localeに"en_US_POSIX"を指定して、想定 […]
東京ベイといっても千葉なのさ
DateFormatterはコストがかかる。 だから、for文とかで、何回も生成していると、とても遅くなる。 ってことで、staticに定義して、使いまわそうというお話。 extensionで。 [crayon-650deaa27d601025335684/] で、注意したいのが2点。 localeに"en_US_POSIX"を指定している localeに"en_US_POSIX"を指定して、想定 […]
Swiftで、valueがArrayとなっているDictionaryに対して、そのvalueにappendしたときのパフォーマンスがとても悪かった。 ...どういうことかというと、例えば、 [crayon-650deaa27d948397924944/] という、keyはStringで、valueにIntの配列を持つscoresに対して、 [crayon-650deaa27d94d32044020 […]
iOSアプリのパフォーマンス解析をしていたら、nibのロードが遅かった。原因は、正しくインストールされていないカスタムフォントをInterfaceBuilderで指定していたことが原因だった。 コードは、カスタムViewをつくるときの定石だと思うが、以下のようにnibをロードする感じ。 [crayon-650deaa27db41581627827/] で、原因を調査してヒットした記事が以下。 Ni […]
Build Settings > Swift Compiler - Custom Flags > Other Swift Flags に、以下設定を追加。順番重要。 -Xfrontend -warn-long-function-bodies=100 これで、コンパイルに100ms以上時間がかかっている関数名が、warningで表示される。 100の部分を色々調整して、あきらかに遅いところからつぶし […]