【发布时间】:2016-05-10 22:39:43
【问题描述】:
场景如下:
Android 应用程序向位于 EC2 实例上的 ASP.NET MVC 应用程序提交 POST/GET 请求,然后通过 SignalR 通知用户。
问题是,有没有一种方法可以测量从用户在手机上提交数据到最终用户在浏览器中显示该信息的确切时间(以毫秒为单位)。
我尝试从手机发送时间戳,将其发送给最终用户并用 JavaScript 计算总时间,但这并不可靠和准确。
有什么想法吗?
【问题讨论】:
场景如下:
Android 应用程序向位于 EC2 实例上的 ASP.NET MVC 应用程序提交 POST/GET 请求,然后通过 SignalR 通知用户。
问题是,有没有一种方法可以测量从用户在手机上提交数据到最终用户在浏览器中显示该信息的确切时间(以毫秒为单位)。
我尝试从手机发送时间戳,将其发送给最终用户并用 JavaScript 计算总时间,但这并不可靠和准确。
有什么想法吗?
【问题讨论】:
您可以设置一个代理,将流量从电话中继到后端。然后,代理将能够为您提供从客户端应用程序发送请求以及从服务器后端返回响应的准确时间。
但是,它不会告诉您 UI 何时更新并且用户可以实际访问信息,但应用程序接收信息和 UI 更新之间的延迟通常是恒定的,因此也许您可以将该常量添加到测量。
有关在移动设备上设置 HTTP 代理的更多信息:
How to change proxy settings in Android (especially in Chrome)
https://www.charlesproxy.com/documentation/faqs/using-charles-from-an-iphone/
【讨论】:
我发现跟踪此类用例时间的最佳方法是在每个阶段添加时间戳,在本例中为:client、asp.net、signalr。通过这种方式,您可以获得有关每个任务延迟的信息,即使客户端时间戳不可靠,我们仍然可以使用带有边界的信息。当客户端时间戳与服务器时间戳太远时,您可以将其丢弃。这是我之前的一项工作中的设置,我们用于跟踪 Web 服务的延迟。
【讨论】: