Recentemente stavo rivedendo la richiesta di pull del mio team leader nella nostra API Web ospitata da Kestrel. C'era un posto nel nostro codice che è una specie di hot path e stiamo processando frequentemente più di centinaia di articoli in sequenza su ogni richiesta. Quindi gli ho suggerito di elaborare questi elementi in parallelo anziché in sequenza per velocizzare i tempi di risposta della nostra API, ma poi ha risposto con:
In web apps in general we shouldn't do computational stuff in parallel, because the web app is inherently parallel (handles more than one request at a time). If this was a desktop app, or the work was IO - yes for sure.
So di non aver scritto molti servizi web e sono più interessato ai runtime e ai sistemi operativi, ma ha ragione?
La sua argomentazione principale era che se eseguissimo l'elaborazione parallela prendiamo risorse che potrebbero essere altrimenti utilizzate da Kestrel per servire le richieste, anche se non sono sicuro che Kestrel stia utilizzando thread a livello utente o thread a livello kernel (se questo è importante).