项目架构
测试
针对第一个问题,运维提供了俩个方案,vpn、以及远程桌面
-
vpn 通过海外vpn访问项目
优点:可以用真机进行测评,不会受限于设备硬件(gpu、cpu、内存)的影响
缺点:【vpn】测试海外vr请求时,响应最终还是回到国内,不能模拟出国外用户真实体验
-
云主机 通过远程桌面访问vr看房项目
优点:可模拟出国外用户真实场景
缺点:受设备硬件(gpu、cpu、内存)的影响,存在操作延迟,可能会对测试结果产生影响
结论:【云主机】做功能验证和性能测评【手机vpn】仅做功能验证
基于云桌面的前端差异化分析
1、网络
2、资源
3、产品层面
由于产品逻辑和交互风格的不同,我们与竞品的加载策略与渲染逻辑差距很大,且无法调整。
结论:
- tcp建链,以及请求回源的时间过长
- js数量比较多,在加载慢的情况下,因为不是并行加载会延长页面首屏显示时间
- 静态图片资源比较大、模型图片数量过多且与全景图片都在pic1.58cdn.com.cn域名下
优化方向:
- 网络通道优化
- js资源优化合并第三方js,并行加载js
- 升级http2.0,并结合多域名存放全景图片
网络通道优化
缩短用户于资源的距离,减少请求时间,源站需要部署在海外
DNS优化
避免海外用户解析的域名NS在国内,需要把NS部署在当地(例如:北美、南美、欧洲、东南亚、非洲等)。可以通过购买不同域名,将权威DNS节点落在当地或者同一域名通过anycast落在当地
http协议
http1.1存在单个域名6个tcp链接数的限制,有http队首阻塞问题和tcp队首阻塞
http2.0 单个tcp链接,解决了http队首阻塞问题还是存在tcp队首阻塞问题
丢包问题:网站丢包率如果超过2%,2.0的性能就不如1.1,这是tcp的应答机制导致的,丢包会阻塞tcp链接。
在客户端:造成请求发送阶段stalled时间变长以及请求接受阶段的帧阻塞丢包帧之后的帧数据都会被缓存在接收端的TCP缓冲区上,直到收到服务端的重发帧才会继续。
在服务端:丢包发生后,会暂停发送后续帧,重发丢包帧