找回密码
 立即注册

QQ登录

只需一步,快速开始

wutao@digiwin
金牌服务用户   /  发表于:2024-9-12 16:22:58
11#
Joestar.Xu 发表于 2024-9-12 14:51
您好,SpreadJS的每个大版本和中版本都有一定程度上的性能优化。

关于您目前遇到的性能问题,我们还在调 ...

您好,请问还需要多久呢,我这demo还是以前问您内存过大的那个demo,没啥改动
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-12 16:26:03
12#
性能问题是相对较难排查的问题,就目前来看暂时没有预计修复的时间,我后续会持续和开发跟进,一有进展我会马上回复您。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-13 11:16:54
13#
本帖最后由 Joestar.Xu 于 2024-9-13 11:18 编辑

您好,可以先设置:

sheet.options.allowCellOverflow = false;

这样一来,自动合并只会考虑当前可见区域,性能会好很多,

另外还需要清除冻结列:sheet.frozenColumnCount(0);

设置了以上代码后,还需要suspendCalcService、suspendEvent等。

我在本机测试了一下,修改前需要约200s,修改后需要约110s。

另外,根据Profile的结果来看,您的findIndex方法占用了约80%时间:

image.png381249999.png

以下是修改后的文件:

DataBind1.vue (72.03 KB, 下载次数: 4)
回复 使用道具 举报
wutao@digiwin
金牌服务用户   /  发表于:2024-9-14 14:36:15
14#
Joestar.Xu 发表于 2024-9-13 11:16
您好,可以先设置:

sheet.options.allowCellOverflow = false;

好的,我这边调研看看,谢谢您了,麻烦您那边再看看哈,我个人觉得计算逻辑这一块可能还需要在进行优化
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-14 14:40:27
15#
回复 使用道具 举报
wutao@digiwin
金牌服务用户   /  发表于:2024-9-14 17:34:07
16#

您好,我刚刚测试了一下,把您那demo代码拷贝到两个版本中发现16版本性能还是比17版本性能快啊,快个7秒左右
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-18 10:06:54
17#
您好,就目前的情况来看,性能的差异是合理的,SpreadJS在加入新功能的时候需要注入一些插槽,从理论上来说这些插槽不会生效,仅仅是执行一下就返回了。

但是在您目前的用例中存在2W*38的autoMerge区域,这个autoMerge区域会导致整个Sheet在运算时判断是否需要merge,也就需要依次执行getText->getFormatter->getActualStyle。

这样一来就会额外执行很多次插槽方法,即使插槽为空方法,但仍然会额外花费时间,在性能较差的机器上时间会更长。
回复 使用道具 举报
wutao@digiwin
金牌服务用户   /  发表于:2024-9-18 10:36:10
18#
Joestar.Xu 发表于 2024-9-18 10:06
您好,就目前的情况来看,性能的差异是合理的,SpreadJS在加入新功能的时候需要注入一些插槽,从理论上来说 ...

您好,是的,我们这边有很多功能需要用到autoMerge,请问还有其他优化方法吗
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-18 12:28:31
19#
wutao@digiwin 发表于 2024-9-18 10:36
您好,是的,我们这边有很多功能需要用到autoMerge,请问还有其他优化方法吗

根据您目前的用例的情况来看,不建议您针对整个表设置autoMerge,而是针对部分需要autoMerge的列设置autoMerge。
回复 使用道具 举报
wutao@digiwin
金牌服务用户   /  发表于:2024-9-19 10:29:09
20#
Joestar.Xu 发表于 2024-9-18 12:28
根据您目前的用例的情况来看,不建议您针对整个表设置autoMerge,而是针对部分需要autoMerge的列设置auto ...

您好,我们这边的列是动态生成的,所以并不知道哪些列需要设置autoMerge,所以我们是针对整个表设置autoMerge
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部