簡體   English   中英

GHC:Haskell字符串優化

[英]GHC: Haskell string optimizations

我知道Data.Text是比String = [Char]更有效的存儲字符串數據的方法。 但是,似乎我在庫中看到的許多函數都希望將String傳遞給它們。 考慮到指針將比字符串本身占用更多的空間,因此Char的鏈接列表似乎效率很低。 除了列表融合(可能並不總是可能的)之外,GHC是否對[Char]的存儲進行了優化,並且是否將類似的原理應用於其他列表?

所有基本庫函數都使用String而不是更有效的類型的原因是Text所需的文本庫不屬於基本庫。 但是,文本庫提供了自己的各種輸入/輸出功能的變體。 您可以在Data.Text.IO找到它們。

還要注意,為了獲得有效的I / O,通常會使用現代抽象之一,例如管道,迭代器或管道。

在GHC下, String平均每個代碼點使用5個單詞 但是,運行時會在ASCII范圍內預分配字符,這可以緩解這種情況。

是答案。

字節串有點像列表,只有每個元素的大小為一個字節(或8位)。 他們處理懶惰的方式也不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM