microsoftgraph / microsoftgraph/msgraph-sdk-python

Improve execution time on Model deserialization

Aperta
#584 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

enhancement
Lingua principale
Python
Stelle
630
Fork
96
Merge medio
15h 20m
PR unite (30g)
3

Descrizione

So I tried to migrate our usage of raw API calls to Microsoft Graph to your new release 1.1.0.
And I measured execution time with the bare-bones method time.time() before method call, time.time() after method call.

I've tried performing get requests for the endpoints: me, users, domains.

The results were that the sdk is on average 3.5 times slower than the raw call to API which I think a great deal.

Furthermore, I was curios where this overhead came from and I searched through the code with debug.
And the most time spent in execution is after the call to the rest api, when the sdk is building a model by deserializing the json object got from the request in a sdk specific object.

This execution time difference lead me to decide that I should postpone the migration until this is improved or fixed.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia tracciando la deserializzazione dei modelli dell'SDK dopo la risposta REST, che l'issue identifica come la principale fonte di overhead. Riproduci il confronto riportato per gli endpoint me, users e domains; l'attività è completata quando viene dimostrata una riduzione misurabile del tempo di esecuzione rispetto alle chiamate dirette all'API.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
api, performance
Tipo di issue
Refactoring
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.