Ma tâche consiste à effectuer des requêtes périodiques au serveur et à écrire l'heure de cette requête dans la base de données. J'utilise Python 2.7.3, cURL et pycurl comme wrapper pour cURL. Je demande comme:Pycurl: comment déterminer la durée d'une requête
import pycurl
c = pycurl.Curl()
c.setopt(c.URL, "http://google.com/")
c.setopt(c.VERBOSE, True) # to see request details
c.perform()
Mais comment puis-je déterminer l'heure de cette demande?
UPD1
Ok, je comprends, que je prends 2 et la diff horodatages entre eux sera la durée de la demande. Mais je fais face à un problème:
quand j'Execute:
import pycurl, time
c = pycurl.Curl()
c.setopt(c.URL, "http://google.com/")
c.setopt(c.VERBOSE, True) # to see request details
ts = time.clock()
c.perform()
print time.clock() - ts
je reçois 0,0 o (parfois) 0,01. C'est diff, parce que j'exécute ces commandes en python shell et qu'il reste du temps après ts = time.clock()
et avant print time.clock() - ts
, donc le diff devrait être d'environ 3 sec.
Cette sortie se trouve sur mon serveur Ubuntu 12.04 installé sur Virtualbox. Virtualbox installé sur Windows 7. Lorsque j'essaie de code ci-dessous dans Windows 7, j'obtiens une sortie correcte.
Voici une autre question - peut-être que je devrais utiliser time.time() au lieu de time.clock()?
Solution
idée a été de this post. Succinctement, vous devriez utiliser time.clock() sur windows et time.time() sur Linux ou Unix (Ubuntu et autres, FreeBSD et autres, MacOS). Et vous pouvez également utiliser timeit.default_timer(). Cette fonction détecte le type d'os et choisit time.time() ou time.clock(). Ainsi, le code de la solution est:
import pycurl, timeit
c = pycurl.Curl()
c.setopt(c.URL, "http://google.com/")
c.setopt(c.VERBOSE, True) # to see request details
ts = timeit.default_timer()
c.perform()
print timeit.default_timer() - ts
duplication possible de [Mesure du temps écoulé en python] (http://stackoverflow.com/questions/7421641/measuring-elapsed-time-in-python) –
Demandez-vous la _duration_ de la requête, l'heure locale la demande a commencé, le moment où le serveur distant l'a reçu, quelque chose d'autre ...? –
prenez-vous à propos de Ping? –