cloudwu / sproto

Yet another protocol library like google protocol buffers , but simple and fast.
MIT License
942 stars 253 forks source link

encode: 包大小在 8M ~ 16M 时不报错 #116

Closed EfveZombie closed 4 months ago

EfveZombie commented 4 months ago

test.lua 中随便写一个诸如 string.rep("1", 9e6) 的字符串都会导致 encode 失败, 应该在 15M+ 才报错比较合理

cloudwu commented 4 months ago

我想 8M 和 16M 限制并没有本质区别。对上限不满意,直接改 ENCODE_MAXSIZE 即可。

EfveZombie commented 4 months ago

上限具体多少确实不怎么重要, 但是现在使用者看到报错信息会比较迷惑, 所以如果限制是 16m, 那最好是用到 16 m 再报错

cloudwu commented 4 months ago

我认为没有太大修改的必要。倒是现在主流的做法并不是 2 而是 3/2+1 。这可以改一下。

EfveZombie commented 4 months ago

改成 x1.5 了, 不过又看到 go 这个动态系数的: x2~x1.25 nextslicecap