使用类似Python的HTML5导航计时来测量页面速度和网络时间?
我目前正在开发一个客户机,它应该通过服务器的实际响应时间(以及网络的单独响应时间)来确定服务器的运行状况。我遇到了一个,它给了我基本上所有的指标,我感兴趣的是:使用类似Python的HTML5导航计时来测量页面速度和网络时间?,python,html,performance,python-requests,Python,Html,Performance,Python Requests,我目前正在开发一个客户机,它应该通过服务器的实际响应时间(以及网络的单独响应时间)来确定服务器的运行状况。我遇到了一个,它给了我基本上所有的指标,我感兴趣的是: 我知道我可以使用Selenium和PhantomJS来解析输出,但出于性能和可伸缩性的原因,我更喜欢解决方案urllib或requests,它将其分解为DNS请求、网络上的时间和服务器响应的实际时间。以@Andre Daniel提供的参考为基础,这段代码通过DNS获取域IP,并打印出经过的时间。然后,它获取一个URL,打印时间,并打印
我知道我可以使用Selenium和PhantomJS来解析输出,但出于性能和可伸缩性的原因,我更喜欢解决方案urllib或requests,它将其分解为DNS请求、网络上的时间和服务器响应的实际时间。以@Andre Daniel提供的参考为基础,这段代码通过DNS获取域IP,并打印出经过的时间。然后,它获取一个URL,打印时间,并打印删除同一URL的DNS查找时间后经过的时间 来源 输出
为了建立在@Andre Daniel提供的引用基础上,此代码通过DNS获取域IP,并打印所用时间。然后,它获取一个URL,打印时间,并打印删除同一URL的DNS查找时间后经过的时间 来源 输出
首先,忘记所有的
dom
事件,因为你没有解析文档,只是从服务器接收普通字节。当然,正如前面提到的,我只对DNS、网络时间和服务器响应时间感兴趣。开始DNS查找和连接时间。首先,忘记所有的dom
事件吧,因为你没有解析文档,只是从服务器接收普通字节。当然,正如前面提到的,我只对DNS、网络时间和服务器响应时间感兴趣。开始DNS查找和连接时间。
import socket, time, urllib, urlparse
URL = 'http://example.com/123'
print URL, 'timing:'
urlinfo = urlparse.urlparse(URL)
start = time.time()
ip = socket.gethostbyname( urlinfo.netloc )
dns_tm = time.time()-start
print 'DNS:\t\t{:.3f} seconds'.format( dns_tm )
start = time.time()
_data = urllib.urlopen(URL).read()
load_tm = time.time()-start
print 'load:\t\t{:.3f} seconds'.format( load_tm )
print 'w/o DNS:\t{:.3f} seconds'.format( load_tm-dns_tm )
http://example.com/123 timing:
DNS: 0.054 seconds
load: 0.104 seconds
w/o DNS: 0.050 seconds