首页 > 解决方案 > 飞镖字符串的最大长度是多少?

问题描述

dartString类最多可以容纳多少个字符?我在谷歌搜索中搜索了这个问题,但找不到答案。

标签: stringdart

解决方案


这取决于。

为 web 编译时,限制是允许的 JSString长度。检查,似乎 Chrome 对字符串长度有 0x1FFF_FFE8 限制,Firefox 使用 0x3FFF_FFFE。

在 Dart 原生 VM 上,限制是内存(以及整数的大小,但到目前为止,64 位整数不能成为当代硬件的限制因素。您实际上不能在任何当前 64 上拥有 2^64 字节的内存位架构。)在尝试将长度为 0x4_0000_0000(16 Gb)的字符串加倍后,我遇到了“堆空间耗尽”错误。那时代码已经相当慢了,这并不奇怪,因为计算机“只有”有 32 Gb 的物理内存。

如果使用 32 位 VM,内存限制肯定会更低。


推荐阅读