Performance Data.Text.Lazy.Builder与Text.Builder

Performance Data.Text.Lazy.Builder与Text.Builder,performance,haskell,text,Performance,Haskell,Text,模块Data.Text.Lazy.Builder()和模块Text.Builder()之间有什么区别?我指的是目标、效率和可能性 我没有使用文本生成器,但它声称是一个“高效的严格文本生成器”(emphasis mine),而标准的Data.text.Lazy.builder构建了Lazy文本(本质上是一个UTF-16数组块的链接列表)。这两个库(构建器的思想)的要点是避免在通过追加累积字符串时进行大量分配和复制 在我看来,文本生成器库主要将自身限制为静态已知大小的类型。我想它存在的原因是它可以比

模块
Data.Text.Lazy.Builder
()和模块
Text.Builder
()之间有什么区别?我指的是目标、效率和可能性

我没有使用
文本生成器
,但它声称是一个“高效的严格文本生成器”(emphasis mine),而标准的
Data.text.Lazy.builder
构建了Lazy
文本
(本质上是一个UTF-16数组块的链接列表)。这两个库(构建器
的思想)的要点是避免在通过追加累积字符串时进行大量分配和复制

在我看来,
文本生成器
库主要将自身限制为静态已知大小的类型。我想它存在的原因是它可以比
文本中的普通构建器更高效;在
run
中,您可以只分配一次,然后将其序列化到数组中,在
Data.Text.Lazy.Builder中,您可能需要不断增加或分配新的块。如果您真正需要的是严格的
文本
,那么您可能需要为复制所有这些块付费(我不确定,这可能还包括额外复制中间严格的
文本

但这主要是猜测。也许Nikita Volkov会插话。

我确认我所说的一切:“《文本生成器》软件包的源代码附带的基准测试表明,至少在涉及的情况下,它的速度更快。还有成功案例用户报告,例如。