Я работаю над проектом 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
Не видя своей логики при выполнении вычислений, я не могу сказать многого, но вы можете попытаться выполнить некоторые вычисления раньше, когда пользователь использует ваше приложение, чтобы при планировании уведомлений было меньше работы. Показание вашей логики в ваших кодах вместо двух строк комментария может помочь. –