忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

バックグラウンドスレッド生成処理のパフォーマンスについて

わか

iOSのバックグラウンドスレッド生成処理の実行時のパフォーマンスについて
使用した感覚を記載します。

私が知る限りiOSでは以下の3つのバックグラウンドスレッド生成関数があります。
・performSelectorInBackground (機能は少ないが、非常に簡単に記載できる)
・NSBlockOperation (機能は多い。dispatch_asyncと比べると実行が遅い)
・dispatch_async (機能は少ない。実行が早い)

使用してみると実行時のパフォーマンスは以下でした。
dispatch_async > NSBlockOperation > performSelectorInBackground
低レベル関数なのでdispatch_asyncが早いのは当たり前なのかな。

普段はNSBlockOperationを使用していましたが、for文で高速に回したり
UITableViewで高速に呼び出されたりする場合に実行が遅い場合がありました。

UITableViewやUIScrollViewでNSBlockOperationを使用しており、スクロールがかくつく場合
dispatch_asyncに変更すれば改善される場合があるようです。


拍手[0回]

PR