2010-08-16 22 views

Répondre

1

Vous ne savez pas ce que line_profile est. Pour cProfile, il vous suffit de diriger les résultats vers un fichier que vous pourrez ensuite lire sur le serveur (en fonction du type d'accès que vous avez au serveur).

Pour citer l'exemple de the docs,

import cProfile 
cProfile.run('foo()', 'fooprof') 

et mettre tout le reste du code dans un def foo(): - puis récupérer plus tard ce fichier fooprof et analyser à loisir (en supposant que votre script est exécuté avec des autorisations à écrivez-le en premier lieu, bien sûr). Bien sûr, vous pouvez vous assurer que différentes exécutions sont profilées dans différents fichiers, etc, etc - cela dépend aussi du type d'accès et des permissions que vous obtenez de votre fournisseur d'hébergement, par exemple, comment sont vous avez permis de conserver les données, d'une manière qui vous permet de récupérer ces données plus tard? Ce n'est pas une question de Python, c'est une question de contrats entre vous et votre hébergeur ;-).

+0

Oui, je l'ai vu dans les docs, alors devrais-je faire de mon script une grande fonction? – Parker

+0

@Parker, il est toujours préférable d'avoir tout votre code "significatif" dans les fonctions (une, ou, de préférence, plus, qui sont toutes appelées d'une centrale ;-) plutôt que d'un module de haut niveau - qui permet un mais l'optimisation cruciale que le compilateur Python effectue de manière transparente pour vous (faire des références variables dans des indexations très rapides dans un tableau interne au lieu de rechercher dict, si vous devez savoir ;-); cela, en soi, vous achètera une belle amélioration de la performance "fondamentalement gratuite", même avant que vous commenciez le profilage ;-). –

+0

Merci Alex! Je n'avais pas réalisé que les fonctions accéléreraient les choses. Est-ce le cas même pour ceux que je n'utilise qu'une seule fois? – Parker