我们正在开发一种工具,以非侵入性的方式衡量网站的性能(不修改网站源代码)。我们在Java中有一个小应用程序,它通过互联网向我们的客户网站发出请求,并保存ResponseCode,LoadTime,加载的字节数等等。
我们衡量的主要指标之一是TTFB。我想知道我们是否采取了正确的方式。
我们进行HttpURLConnection并将两个时间戳的差异保存为TTFB,如下所示。
Calendar before = Calendar.getInstance();
HttpURLConnection connection = (HttpURLConnection)new URL( url ).openConnection();
connection.getResponseCode();
Calendar end = Calendar.getInstance();
//read the content
Calendar endContent = Calendar.GetInstance();
long TTFB = end.getTimeInMillis() - before().getTimeInMillis();
long justLoadTime = endContent.getTimeInMillis() - end.getTimeInMillis();
这是对的吗? 获得时间直到ResponseCode是TTFB? 或者直到某些字节的内容已经到达?
有更简单的方法来获取这些信息吗?
在极少数情况下,TTFB和justLoadTime之间的差异非常小,在重量级页面中。
答案 0 :(得分:0)
我不确定您是否可以通过Http Url连接获得准确的测量结果。这听起来要低得多,你可能需要套接字编程。到达的第一个字节将是单个TCP数据包。在HTTP级别运行,您可能已经收到多个数据包。因此,可以澄清“第一个字节”对您的指标的意义。