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
계산을 수행하는 과정에서 로직을 보지 않고도 그다지 말할 수는 없지만 사용자가 앱을 사용할 때 특정 계산을 먼저 수행해보고 알림 일정을 잡을 때 수행 할 작업이 적어 지도록 할 수 있습니다. 두 줄의 주석 대신 코드에 논리를 표시하면 도움이 될 것입니다. –