Ho creato un'applicazione client che utilizza HTTP per comunicare con un server Python 2 utilizzando una semplice API. Il server utilizza l'ORM di SQLAlchemy in modo piuttosto estensivo per servire i dati per quelle richieste HTTP. Il problema è che l'utilizzo della mia CPU è abbastanza alto anche con pochi client attivi. Questo server dovrebbe essere in grado di servire poche centinaia di client contemporaneamente a circa 1 richiesta al secondo per client, quindi dovrebbe essere ancora gestibile (o almeno così spero).Come migliorare le prestazioni di SQLAlchemy?
Come posso migliorare le prestazioni? So che il problema è l'ORM come cProfile mostra questo abbastanza chiaramente. Apparentemente una singola query esegue circa 10000 istruzioni Python che sembrano abbastanza strane. Ho provato a collegare diversi motori di database/backend e ho cambiato l'interprete in Pypy solo per divertimento ma ovviamente non ha aiutato il problema originale e non ha migliorato le prestazioni.
Cosa sto facendo di sbagliato qui? Spero davvero che questo sia un "bene, duh!" problema.
Le mie relazioni dovrebbero essere di tipo diverso? desideroso, pigro, dinamico, ecc? In questo momento, non specifica nulla in particolare.
Aiuto molto apprezzato.
dai un'occhiata alla mia risposta http://stackoverflow.com/questions/1171166/how-can-i-profile-a-sqlalchemy-powered-application/1175677#1175677 per alcuni posti da avviare – zzzeek