[原创] pycurl简单用法与urllib2性能对比

    技术2022-05-20  40

    #coding: utf-8 import pycurl import StringIO import urllib2 def f(url): c = pycurl.Curl() c.setopt(pycurl.URL, url) b = StringIO.StringIO() c.setopt(pycurl.WRITEFUNCTION, b.write) c.setopt(pycurl.FOLLOWLOCATION, 1) c.setopt(pycurl.MAXREDIRS, 5) c.perform() return b.getvalue() def l(url): return urllib2.urlopen(url).read() def t(func): import time n = time.time() for i in xrange(10000): func('http://10.20.187.231/') return time.time() - n print 'pycurl', t(f) print 'urllib2', t(l)

    最简单的测试: 一个for循环; 使用一个内网IP,减少网络问题。

     

    结果输出 :

    pycurl 9.5188128948 urllib2 15.1496920586

     

    最主要是cpu占用问题。pycurl时,占cpu只有urllib2的 1/3= 20% : 60% , 差别还是比较大!

    pycurl网络接收速度是 urllib2的两倍。

     

    pycurl文档:

    http://pycurl.sourceforge.net/doc/pycurl.html


    最新回复(0)