请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

小码农

初级会员

37

主题

133

帖子

388

积分

初级会员

积分
388
小码农
初级会员   /  发表于:2022-5-21 23:13  /   查看:2364  /  回复:3
100金币

当使用下面推荐的合并sheet代码时候,每执行一次内存使用量就会翻倍增加,当连续执行超过200次后内存就会**,网页崩溃,有什么可以每次执行完销毁内存的办法么
https://gcdn.grapecity.com.cn/showtopic-93624-1-1.html

window.performance.memory;
{
  jsHeapSizeLimit: 4294705152; // 上下文内可用堆的最大体积,以字节计算。
  totalJSHeapSize: 82412148; // 已分配的堆体积,以字节计算。
  usedJSHeapSize: 73731436; // 当前 JS 堆活跃段(segment)的体积,以字节计算。
}



  •   workbook.commandManager().execute(
  •                 {
  •                     cmd: "clipboardPaste",
  •                     sheetName: sheetName,
  •                     fromSheet: sheet1,
  •                     fromRanges: fromRange1,
  •                     pastedRanges: toRange1,
  •                     isCutting: false,
  •                     clipboardText: "",
  •                     pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all
  •                 }
  •             );


image.png765521545.png

最佳答案

查看完整内容

你好,请问你的版本是多少呢?我们在14.1.3修复过一次关于类似的内存不释放的问题,建议升级至该版本或者之后的版本尝试。 另外,从上面的描述来看,做上面的行为是比较费性能的操作,很有可能达到前端的性能瓶颈,如果有像超过200次类似的操作,建议放后端来实现,后端可以用我们的后端组件GcExcel来实现表单的复制,而且效率更高,能够有效避免类似的问题。

3 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-5-21 23:13:52
来自 2#
你好,请问你的版本是多少呢?我们在14.1.3修复过一次关于类似的内存不释放的问题,建议升级至该版本或者之后的版本尝试。

另外,从上面的描述来看,做上面的行为是比较费性能的操作,很有可能达到前端的性能瓶颈,如果有像超过200次类似的操作,建议放后端来实现,后端可以用我们的后端组件GcExcel来实现表单的复制,而且效率更高,能够有效避免类似的问题。
回复 使用道具 举报
小码农
初级会员   /  发表于:2022-5-23 10:28:36
3#
本帖最后由 小码农 于 2022-5-23 10:29 编辑
Derrick.Jiao 发表于 2022-5-23 10:19
你好,请问你的版本是多少呢?我们在14.1.3修复过一次关于类似的内存不释放的问题,建议升级至该版本或者之 ...

版本是14.20
我们系统比较特殊,需要放在前端实现,而且如果放在后端服务器这种操作应该也会造成内存不足吧
而且虽然操作频繁,但是文件内容本身并不大,就几百kb,却会造成4个G的内存,有点不明白

有什么能实现内存释放的操作,因为操作完后过了很长时间内存也没有自动释放,除非把整个spread组件全部销毁

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-5-23 11:33:54
4#
小码农 发表于 2022-5-23 10:28
版本是14.20
我们系统比较特殊,需要放在前端实现,而且如果放在后端服务器这种操作应该也会造成内存不 ...

后端理论上不会出现这个问题,因为我们的GcExcel里面有专门的copy方法,用于复制表单。而SpreadJS要合并表单需要用代码来处理这些样式数据等。

SpreadJS目前没有释放内存的方法。建议提供一份能复现问题的简单demo,这边来做进一步调研。看下是否是前端的限制或者是否有更好的方案来实现。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部