后端使用go写的socketio服务模拟期货行情数据,每10ms推送10条行情数据
ReactNative已经尽力优化了。
Flutter由于没flutter-socketio这个库不支持dart2.0以上的版本,所有用了安卓的socketio,通过事件与Flutter通讯。
1.内存占用
ReactNative
Flutter
2.FPS
ReactNative 满帧运行
Flutter 渲染引擎没有满帧
但是ReactNative在满帧的情况下实际是卡住的,不能切换路由,后端服务关闭后仍然会执行一段时间,证明有事件堆积。
而Flutter不会影响路由切换,因为Flutter的路由切换跑在ui主线程上,而react-navigation运行在js线程上。Flutter虽不满帧但可以实时更新数据,10ms也不是Flutter的极限。
总结:在某些高性能场景下仍需要跨平台,Flutter是你唯一的选择!
Flutter的性能还可以进一步优化,例如采用udp发送行情数据、protobuf替换掉json也会有比较好的收益
上图是我测试的几种手机的极限性能,大家可以自己测试,代码在下方
后端 Flutter ReactNative