问题标签 [bytestring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3453 浏览

haskell - ByteString 到惰性文本,反之亦然

我在将 ByteString 转换为 Text 时遇到问题,反之亦然。这是代码:

和错误信息:

所以,我猜这个错误与 ClientSession 实际使用的内容有关,在他们的源代码中,他们似乎使用了正常的字节串,这应该适用于我的实现。看这里:

那么为什么我会得到所有这些错误呢?谢谢。

0 投票
2 回答
247 浏览

haskell - Haskell - 你如何在二进制中添加一个字节串的长度?

我处于不幸的情况,我需要直接在 Haskell 中与 Java 套接字 API 交互。通过网络发送 Java 字符串的方式是将它们的长度添加到字符串的开头。

例如:

是字符串“Hello World”

我可以得到ByteString没有问题的长度,但作为Int. 我可以Word32使用 Blaze Builder 将 a 添加到 ByteString,但我找不到IntWord32. 是否有一些我找不到的便捷方法可以做到这一点?

谢谢。

0 投票
2 回答
191 浏览

regex - 匹配 Haskell Text.Regex.Posix.ByteString 中的 8 位字符

我的 Haskell 应用程序将输入读取为 ByteString 列表,我正在使用 Text.Regex.Posix.ByteString.regexec 来查找匹配项。某些输入有一个字符代码 253(它是一个 IBM PC 字符集中的 1/2 符号),看起来模式是 '.' (即点,“匹配任何字符”)不匹配。有什么办法让它匹配吗?

0 投票
1 回答
1242 浏览

string - 在 Haskell 中读取字符串到 Int 的性能(Bytestring vs [Char])

只是对 Bytestring 和 String 做一些简单的基准测试。该代码加载了一个 10,000,000 行的文件,每个文件都是一个整数;然后将每个字符串转换为整数。原来Prelude.read比 慢得多ByteString.readInt

我想知道效率低下的原因是什么。同时,我也不确定分析报告的哪一部分对应于加载文件的时间成本(数据文件约为 75 MB)。

这是测试的代码:

代码编译和执行如下:

注意“a.dat”是上述格式,大约 75MB。分析结果是:

编辑

输入文件“a.dat”是 10,000,000 行数字:

在讨论之后,我将“a.dat”替换为 10,000,000 行 1,这不会影响上述性能观察:

0 投票
2 回答
239 浏览

haskell - ByteString 假设 ISO-8859-1?

Data.ByteString.hGetContents的文档说

与 hGet 一样,文件中的字符串表示假定为 ISO-8859-1。

为什么它必须“假设”关于“文件中的字符串表示”的任何内容?数据根本不一定是字符串或编码文本。如果我想要处理编码文本,我会使用 Data.Text 或者 Data.ByteString.Char8。我认为 ByteString 的全部意义在于数据被处理为 8 位字节列表,而不是文本字符。假设它是 ISO-8859-1 有什么影响?

0 投票
1 回答
514 浏览

parsing - Haskell:如何使用 attoparsec 从 ByteString 读取嵌套列表

我有一个带有嵌套列表的文本文件(大约 300 MB 大),类似于这个:

这是我将文件读入haskellInteger列表的程序:

这适用于小文本文件,但我想用它ByteString来快速读取文件。我发现readByteString 没有函数,你应该在 attoparsec 中编写自己的解析器,因为它支持解析 ByteStrings。

我如何使用它attoparsec来解析嵌套列表?

0 投票
1 回答
912 浏览

haskell - 如何获得 ByteString 的 Ptr?

有没有办法从 ByteString 对象中提取指向内存的底层直接指针?编译器说,我目前的方法是不正确的。

0 投票
1 回答
6098 浏览

haskell - 无法将预期类型“Data.ByteString.Internal.ByteString”与实际类型“ByteString”匹配

运行以下代码:

我收到以下编译错误:

我很困惑,因为我不明白为什么 aData.ByteString.Internal.ByteString和 a 之间有区别ByteString

0 投票
4 回答
783 浏览

haskell - Haskell 字节串转浮点数组

您好,有我想要处理的浮点数据二进制文件(单精度 32 位 IEEE)。我怎样才能最好地加载它以供进一步使用,最好是(IOArray Int Float)。

0 投票
2 回答
211 浏览

c - 更快的 ByteString 构造技巧

我是 Haskell 的新手,我一直遇到效率问题。

任务是:从列具有恒定大小的 4GB 文本文件构建 CSV 文件

列大小是已知的,例如 [col1: 4 chars wide, col2: 2 chars wide, etc...
文件只能包含 [A-Z0-9] ASCII 字符,因此转义单元格没有意义

这是我在 Haskell 中最快的代码,处理整个 4GB 文件大约需要 2 分钟。
我最多需要 30 秒

这是我在 C http://pastebin.com/Kjz3Mugs中的实现 (在这里粘贴很长时间......)
处理同一个文件大约需要 5 秒

所以我的 Haskell 代码大约是。慢 20 倍。

因为 Haskell ByteString 过滤器和映射比我在 C 中的实现要快,
(两者都需要不到 2 秒的时间来处理同一个文件,做一些简单的修改)
我希望我的 Haskell 代码有问题,我不会被迫使用 C。

更新:测试数据生成器可在此处获得http://pastebin.com/aJ3RW3jG

在生产中,数据从一个二进制文件传输到另一个二进制文件,因此没有硬盘驱动器 IO

为了测试我使用 SSD 驱动器的解决方案,但我认为 Ext4 还是将该文件缓存在 RAM 中

香草发电机:

我的 C 解决方案:

带发电机

@GabrielGonzalez Haskell 解决方案

带发电机

我的 Haskell 解决方案

带发电机

@LukeTaylor 解决方案

带发电机