Nella profilatura dell'app python2.7 App Engine, trovo che impiega una media di 7 ms per record per deserializzare i record recuperati da ndb in oggetti python. (In pb_to_query_result
e pb_to_entity
e i loro discendenti-questo non include l'ora RPC per interrogare il database e ricevere i record non elaborati.)App Engine deserializing record in python: è davvero così lento?
È previsto? Il mio modello ha sei proprietà, una delle quali è una LocalStructuredProperty
con 15 proprietà, che include anche una ripetuta StructuredProperty
con quattro proprietà, ma l'oggetto medio dovrebbe avere meno di 30 proprietà tutte dette, credo.
Si prevede che sia così lento? Voglio recuperare un paio di migliaia di record per fare una semplice analisi aggregata, e mentre posso tollerare una certa quantità di latenza, oltre 10 secondi è un problema. C'è qualcosa che posso fare per ristrutturare i miei modelli o il mio schema per renderlo più vitale? (Oltre all'ovvia soluzione di precalcolare la mia analisi aggregata su base regolare e memorizzando i risultati nella cache.)
Se è insolito che sia così lento, sarebbe utile sapere che così posso andare a guardare perché quello che potrei fare lo rovina.