有人适配过老爷机吗? 见鬼了, 同一段 js 序列化代码 win10 工作机上执行只要 7 毫秒, 目标机(n 年前产/win7)上执行 500~600 毫秒, 慢了近百倍

314 天前
 retrocode

很简单的一条序列化代码,将缓存中的对象重新实例化成对象实例

示例如下:

const orderList:Order[] = List.map(o => Order.fromDb(o))

Order 对象在实例化时会将对象挂载的各种属性统一递归实例化.

开发机上测试 50 条也才不过 10ms, 整条算法走下来只有 100~130ms.

上了测试机直接爆炸,单序列化那里 20 条数据就上 500ms 了, 整个流程走下来整体 3 秒起步.

调试发现耗时全在实例化上了, 各处的 new 对象普遍慢了 10 倍.

按理说不应该的, 我们嵌套的 webview2 定版.性能差距不应该有这么大的啊.

头都要炸掉了, 还必须实例化, 后续算法是基于面向对象写的, 各个对象有挂载函数.

804 次点击
所在节点    问与答
4 条回复
israinbow
314 天前
适配过火箭用的 fpga 方案,用的是 20 年前的 javascript 引擎。

考虑到 webview2 支持 7 的 109 版本运行时是今年年初发板的,对老旧系统的结束支持也提上议程 https://blogs.windows.com/msedgedev/2022/12/09/microsoft-edge-and-webview2-ending-support-for-windows-7-and-windows-8-8-1/#a11y-skip-link-content

我想你已经知道解决方案了。
retrocode
314 天前
@israinbow #1 没懂啥意思=.= 我们目前用的就是 109 版本, 就是因为要适配 win7
t133
314 天前
老机器不支持 AVX?
retrocode
314 天前
@t133 #3 是的, 10 后的 U, 没有 AVX, 查了几天貌似没辙了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/952487

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX