[BUG] json序列化和lcs计算好像有点问题
BeanWei opened this issue · 4 comments
BeanWei commented
Describe the bug
感谢开源,比较了同类型的lib,您的实现性能是最好的。但是asdiff和lcs的测试貌似太少了,可以看下我贴出来的例子,这个比较典型,json序列化和lcs在下面的例子中都会报错
To Reproduce
you code:
json1 := `{"A": 1, "B": [1, 2, 3], "C": [1, 2]}`
json2 := `{"A": 1, "B": [1, 3], "C": [2, 1], "D": 6}`
AsDiffs([]byte(json1), []byte(json2), UseMoveOption, UseCopyOption, UseFullRemoveOption)
再次感谢您的开源!!!
itlinyuan commented
520MianXiangDuiXiang520 commented
感谢关注,已经修复这个问题啦
BeanWei commented
感谢!但是 json 解析有问题
json1 := `{"A": 1, "B": [1, 2, 3], "C": [1, 2]}`
json2 := `{
"A": 1, "B": [1, 3], "C": [2, 1], "D": 6
}`
上面的json2只是换行了,应该是正常的json吧,但是貌似无法被 自定义的json解析lib处理,在标准库下是可以的。
lcs 修复之后 我跑了下性能能测试,正常通过的情况下 性能降低了很多,拿掉所有 options 依然没有之前高。得出的结论就是:在简单的 kv 处理上很快,但是涉及复杂的值类型的时候性能下降的很明显。
但是依然十分感谢作者的开源!里面类似 Add 和 Remove 合并成 move 的策略是其他lib里没有,这个对我来说有很大的参考价值。感谢🙏
520MianXiangDuiXiang520 commented
json解析的问题暂时已经修复,但自定义的json解析器并没有考虑很多的特殊情况,所以它可能在一些特殊情况下无法使用,为了保险起见,我退回使用的官方的解析器,而在预发布版 v0.2.2-pre 上继续使用了自定义的这个解析器,未来有时间我会继续对他优化,包括您提到的性能问题.再次感谢您的关注和建议,也欢迎您直接提pr