找回密码
 立即注册

QQ登录

只需一步,快速开始

wuchungui

金牌服务用户

6

主题

14

帖子

46

积分

金牌服务用户

积分
46
wuchungui
金牌服务用户   /  发表于:2021-1-19 14:30  /   查看:4844  /  回复:10
1金币
前端通过spreadjs to json 传递json字符串到后端
后端执行下面语句要5s

JsonFile 是前端spreadjs 转换的json 大概3000行70列

Workbook wb=new Workbook();
wb.fromJson(jsonFile);
wb.save(fulllFileName);

====这3行的执行的时间 高达5s
请问gc 保存json最快的调用方式?

最佳答案

查看完整内容

请问是下图这种方式吗,时间为2250ms,这个时间还是比较合理的。

10 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-19 14:30:13
来自 11#
wuchungui 发表于 2021-1-20 10:52
DerrickJiao 您好,您这边能否尝试先把这个ssjson转换为字符串 work
通过workbook.toJson()
这个时候我 ...

请问是下图这种方式吗,时间为2250ms,这个时间还是比较合理的。 image.png735641479.png

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-19 14:43:00
2#
本帖最后由 DerrickJiao 于 2021-1-19 16:13 编辑

您好,这边测试的demo耗时不到1s,建议您提供您的表单以及demo,另外您可可以尝试升级版本至v4.0.2 image.png111966857.png

这是我的demo,您可以用我的demo在您的机器跑一下,确认如果不是机器问题,您再用您的表单导进去看能否复现。


如果复现,建议您对表单进行脱敏处理,这边给您调研一下。

ConfigureBestFitRowColumn_java.zip

9.89 MB, 下载次数: 281

回复 使用道具 举报
wuchungui
金牌服务用户   /  发表于:2021-1-19 17:13:54
3#
验证本机执行上面的demo的文件

保存文件124.ssjson,耗时1s141ms。

我这边传递过来的参考这个帖子
https://gcdn.grapecity.com.cn/showtopic-77608-1-1.html

var jsonstr = JSON.stringify(spread.toJSON(serializationOption));
传递给后台的是json字符串
然后
wb.fromJson(jsonFile);
wb.save(fulllFileName);


回复 使用道具 举报
wuchungui
金牌服务用户   /  发表于:2021-1-19 17:25:52
4#
我尝试把我的文件 导出未ssjson格式,然后用同样的代码
速度快了一点,耗时2s273ms
另外我这个ssjson的大小是35M大小
你这个124是17M

请继续帮忙看看呢 难不成要先导出未ssjson传递给后台?

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-19 17:40:28
5#
wuchungui 发表于 2021-1-19 17:13
验证本机执行上面的demo的文件

保存文件124.ssjson,耗时1s141ms。

麻烦您尝试将您的数据在我上面的demo运行看下需要的时长是多少?
理论上序列化选项不会有所影响

如果仍是5s,麻烦您提供一下脱敏后的表单这边调研一下
回复 使用道具 举报
wuchungui
金牌服务用户   /  发表于:2021-1-19 17:42:18
6#
本帖最后由 wuchungui 于 2021-1-19 17:46 编辑
DerrickJiao 发表于 2021-1-19 17:40
麻烦您尝试将您的数据在我上面的demo运行看下需要的时长是多少?
理论上序列化选项不会有所影响

按你说的导出ssjson格式得文件,
然后用同样的代码
速度快了一点,耗时2s273ms
你的代码的那个数据运行是1s310ms

FileInputStream fit = new FileInputStream("/Users/jiaojianhao/Downloads/ConfigureBestFitRowColumn_java/124.ssjson");
workbook.fromJson(fit);
workbook.save("测试.xlsx");

我直接用前端传递过来的json字符串运行是5s620m

fit 已经是序列化的字符串了 所以没有用FileInputStream
这个你那边可以重新吧 用序列化字符串fromjson试一下
workbook.fromJson(fit);
workbook.save("测试.xlsx");





回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-19 17:53:50
7#
wuchungui 发表于 2021-1-19 17:42
按你说的导出ssjson格式得文件,
然后用同样的代码
速度快了一点,耗时2s273ms

您的ssjson对比我的测试ssjson大自然相对会慢一些,这个时间是较为合理的。
建议您提供您的ssjson文件,这边看下有没有优化空间。这边及时模拟了一个35M的ssjson的问题也不一定能解决您的问题。


所以最好的方法是您提供ssjson文件。
回复 使用道具 举报
wuchungui
金牌服务用户   /  发表于:2021-1-19 19:54:11
8#
ssjson文件那么大 无法脱敏 提供

请先尝试模拟一下 ,我这边模拟ssjson文件 常规的 还是比json文件慢一倍以上

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-20 10:33:14
9#
wuchungui 发表于 2021-1-19 19:54
ssjson文件那么大 无法脱敏 提供

请先尝试模拟一下 ,我这边模拟ssjson文件 常规的 还是比json文件慢一 ...

这边模拟了一个35M的ssjson,运行时间为1577ms
image.png494093322.png

124.ssjson.zip

1.66 MB, 下载次数: 231

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部