【发布时间】:2020-07-21 06:50:49
【问题描述】:
我想测量 Web 应用程序中的往返时间,以了解发送、回答和解释请求所需的时间。我向数据库服务器发送一个请求,它向我发回一些数据,我想使用 WebGL 可视化这些数据。 WebGL 部分仅包括设置纹理并将其绘制到四边形上。
我希望我的测量在发送请求时开始,并在渲染完成后立即停止。目前,我的(也许是幼稚的)方法是这样的:
ws.send(JSON.stringify(request));
start = performance.now();
ws.onmessage = (d) => {
...
render(d); // here goes some typical plain WebGL code for preparing and plotting a 2D texture on a quad
end = performance.now();
}
roundtrip = end - start;
但我不确定这是否是一个准确的测量值以及end 是否真的指的是最终绘制的画布。 有什么方法可以获取帧渲染的确切时刻? 目前,我没有典型的渲染循环,而是在有新请求时使用新帧更新视图被触发。我知道gl.finish() 但这是doesn't seem to be an adequate solution。我还从 WebGL2 API 中听说了 WebGLSync,但首先我使用的是 WebGL1,其次它感觉不是一个复杂的问题......
【问题讨论】:
标签: javascript performance webgl latency