找回密码
 立即注册

QQ登录

只需一步,快速开始

Samuer
金牌服务用户   /  发表于:2022-11-4 20:08  /   查看:1910  /  回复:7
本帖最后由 Lynn.Dou 于 2022-11-7 11:04 编辑

image.png984682311.png image.png523218078.png
使用代码如下:


  1. console.time('15.2.2')
  2. const nodes = [...sheet?.getPrecedents(row, col), ...sheet?.getDependents(row, col)]
  3. console.timeEnd('15.2.2')
复制代码
因为我们需要大量计算单元格公式之间的依赖。发现 15.2.2 与 14.0.7 版本之间的性能消耗相差几十倍
一个单元格的查找,14.0.7 大部分都是 0.0几 ms, 而15.2.2 大部分都在 1 ms 左右。
不知道15+的版本有没有其它的可以优化的方案


评分

参与人数 1金币 +500 收起 理由
Lynn.Dou + 500 感谢反馈问题!

查看全部评分

7 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-7 11:03:53
沙发
您好,

这边使用学习指南demo测试,V14.0.7  V14.2.5 V15.2.2 测试结果如下:
image.png328015746.png
已将此问题记录下来进一步调研原因,待有进展会在贴中回复您。
本贴先做保留处理。


回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-10 09:22:29
板凳
更新进展:
原因是在V14.1.2之前getDependent是由listener获取的,这是不正确的,所以对此做了修复。
关于性能问题,计划在后续版本进行修复,具体版本还待确认,有进展贴中通知您。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-11 17:27:27
地板
更新进展:
该问题已在V15.2.5修复,您可以通过npm升级测试下,如有疑问可以跟帖交流。
回复 使用道具 举报
Samuer
金牌服务用户   /  发表于:2022-11-11 19:32:13
5#
image.png285748595.png image.png119308470.png


getDependents 这个 api 性能并没有提升啊
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-14 09:50:58
6#
本帖最后由 Lynn.Dou 于 2022-11-14 09:52 编辑

如附件demo所示,相较于V15.2.2 ,V15.2.5测试结果如下,您可以参考下。

image.png491404418.png
如果问题仍未解决,请参考demo对比形式,整理一个可复现V15.2.5性能未优化的demo,这边再测试调研下。

getDependents.zip

4.06 KB, 下载次数: 45

回复 使用道具 举报
Samuer
金牌服务用户   /  发表于:2022-11-14 17:10:54
7#
Lynn.Dou 发表于 2022-11-14 09:50
如附件demo所示,相较于V15.2.2 ,V15.2.5测试结果如下,您可以参考下。

你这是相比于15.2.2,所以还是达不到14.0.7的性能消耗吗,14.0.7和现在相比是相差上千倍性能
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-14 17:23:26
8#
本帖最后由 Lynn.Dou 于 2022-11-14 17:27 编辑
Samuer 发表于 2022-11-14 17:10
你这是相比于15.2.2,所以还是达不到14.0.7的性能消耗吗,14.0.7和现在相比是相差上千倍性能

如前文所述,V14.0.7中getDependents是由listener获取的,在设计上是不正确的。所以在后面版本中对此做了设计上的修改,出现了您描述的问题。
根据您反馈的情况,在V15.2.5已对getDependents性能做了优化,这一点您可以从上个回复中的数据对比看出。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部