Middle
Чӣ гуна сифати хизматрасонӣ (Quality of Service)?
sobes.tech AI
Ҷавоб аз AI
Сифати хизмати (QoS) дар iOS — ин системест, ки имкон медиҳад, ки афзалиятро дар иҷрои вазифаҳо (DispatchQueue) идора кунад. Ин система маълумотҳоро барои тақсим кардани захираҳо (вақти CPU, энергия) истифода мебарад.
Мувофиқи QoS чанд сатҳ вуҷуд дорад:
- UserInteractive: вазифаҳое, ки бевосита бо интерфейси корбар алоқаманданд ва бояд фавран иҷро шаванд, то ҷавобгӯӣ нигоҳ дошта шавад (масалан, анимацияҳо, коркарди ҳодисаҳои тамос).
- UserInitiated: вазифаҳое, ки аз ҷониби корбар оғоз ёфтаанд, аммо талаботи фаврӣ надоранд (масалан, боркунии мундариҷа барои намоиш пас аз интизории кӯтоҳ).
- Utility: вазифаҳое, ки дарозмуддатанд, UI-ро монеъ намекунанд, аммо вақти муайянро талаб мекунанд (масалан, боркунии маълумот дар пасзамина, ҳисобҳо).
- Background: вазифаҳое, ки дар пасзамина иҷро мешаванд ва барои корбар намоён нестанд (масалан, ҳамоҳангсозии маълумот).
- Default: афзалиятии пешфарз, ки агар QoS равшан нишон дода нашуда бошад, истифода мешавад. Дар байни Utility ва Background ҷойгир аст.
- Unspecified: нишон медиҳад, ки QoS набояд истифода шавад ё аз контексти даъваткунанда гузаронида мешавад.
// Мисоли эҷоди навбат бо QoS UserInitiated
let userInitiatedQueue = DispatchQueue.global(qos: .userInitiated)
userInitiatedQueue.async {
// иҷрои вазифаи бо афзалияти баланд, ки корбар оғоз кардааст
}
// Мисоли эҷоди навбат бо QoS Background
let backgroundQueue = DispatchQueue.global(qos: .background)
backgroundQueue.async {
// иҷрои вазифаи дар пасзамина
}
Истифодаи дурустии QoS кӯмак мекунад, ки истеъмоли энергия оптималӣ шавад, ҷавобгӯии UI беҳтар гардад ва захираҳои системӣ самараноктар истифода шаванд. Афзалиятии вазифа метавонад паст карда шавад, аммо на баланд карда шавад нисбат ба афзалияти навбат. Агар вазифа ба навбат бо афзалияти пасттар гузаронида шавад, он сохти аввалияашро нигоҳ медорад.