1

次のコードを使用して、結果と経過時間をmod_wsgiに表示しましたが、時間をナノ秒に丸めても、経過時間は常に0になります。差を計算するために今何をしますか?

#!D:/Python27/python

from wsgiref.simple_server import make_server
from cgi import parse_qs, escape
import time
import datetime

html = """
<html>
<body>
  <h2>Sum of first n factorials</h2>
   <form method="get" action="Sec1q10.py">
      Number :<input type="text" name="t1">
<br> <input type="submit" value="Submit">
  </form>
   <br>
   Result:%s<br>
   Now:%s<br>
   End:%s<br>
   Time:%s
   </body>
</html>"""

def application(environ, start_response):
 d=parse_qs(environ['QUERY_STRING'])
 now = int(round(time.time()*1000000))
 n=d.get('t1',[''])[0]
 i=1
 p=1
 s=0
 while (i<=int(n)):
  p = p*i
  s =s+p
  i = i+1 
 end= int(round(time.time()*1000000))
 diff=end-now
 status = '200 OK'
 output = html % (s or 'Empty',now or 'Empty',end or 'Empty',diff or 'Empty') 

 response_headers = [('Content-type', 'text/html'),
                    ('Content-Length', str(len(output)))]
 start_response(status, response_headers)

 return [output]

表示される出力は、数値4を入力した場合です。

Result:33
Now:1346520500489000
End:1346520500489000
Time:Empty

他に、経過時間を調べるために使用できますか?

4

1 に答える 1

2

time.time()無限の解像度はありません-テストしている操作はほとんど時間がかかりません。はるかに大きいを使用するnか、ループを一定の回数(たとえば、1000回)繰り返して、結果を繰り返した回数で割ってみてください。

于 2012-09-01T17:55:15.150 に答える