7

Web リクエストの各フェーズにかかる時間に関する統計を収集したいと考えています。httplibオファー:

def run(self):
    conn = httplib.HTTPConnection('www.example.com')
    start = time.time()
    conn.request('GET', '/')
    request_time = time.time()
    resp = conn.getresponse()
    response_time = time.time()
    conn.close()
    transfer_time = time.time()

    self.custom_timers['request sent'] = request_time - start
    self.custom_timers['response received'] = response_time - start
    self.custom_timers['content transferred'] = transfer_time - start

    assert (resp.status == 200), 'Bad Response: HTTP %s' % resp.status

これらの統計は、のようなより高レベルのインターフェースから利用できますurllib2か? そのような統計を提供する高レベルのライブラリはありますか?

4

2 に答える 2

0

time.time は、最も信頼性が高く正確ではありません。プロファイリングの目的で、Python の timeIt モジュールを使用できます。http://docs.python.org/library/timeit.html timeit を使用するコード スニペットを次に示します。

    statmnt = 'print "Replace print with the snippet you want to profile"'
    setup = 'print "Replace this line with some snippet specific imports"' 
    n = 1 #Number of times you want the timeit module to execute the statmnt
    t = timeit.Timer(statmnt, setup)
    qTime = t.timeit(n)

あなたのケースでは、リクエスト、レスポンス、コンテンツの 3 つの timeit オブジェクトを作成する必要があります。モジュール timeit の詳細については、ドキュメントを参照してください

于 2012-08-20T15:07:38.423 に答える