0
私は複雑な通知の計算を伴うSwiftプロジェクトに取り組んでいます。私は通知のスケジュールを決定するために非常に複雑な操作を行う必要があるオブジェクトの配列をループしています。現在、私はやっている:スウィフトは複雑な操作をたくさん処理します
for item in items {
//some logic here
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)) {
//complex operation here, then schedule notification
}
}
を残念ながら、これは私がすべて同じキューを使用しようとしているオブジェクトの束のためにこれをやっているので、遅くなることが証明されています。ユーザーがアプリを離れる前に通知のスケジュールを完了しないことがあります。パフォーマンスを改善するための私の選択肢は何ですか?私は、グローバルな優先度の高いキューをすべて使用するのではなく、何とか毎回新しいキューを作成できるようにするのではなく、お互いに待っているわけではありません。
ボトルネックが実際にどのようなものであるかを知るためにアプリケーションをプロファイリングしましたか? – Undo
はい通知火災の日付の計算は非常に集中的です...私たちは残念ながら私たちのコントロールがないサードパーティのソリューションを使用しています。 – Stephen
計算を実行する際のロジックを見ることなく、あまり言い表せませんが、ユーザーがアプリを使用しているときに特定の計算を前もって試してみて、通知をスケジュールするときに実行する作業が少なくて済むようにすることができます。 2行のコメントではなくコードにロジックを表示すると役立ちます。 –