問題タブ [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 から lazy Text へ、およびその逆

ByteString を Text に、またはその逆に変換する際に問題が発生しました。コードは次のとおりです。

エラーメッセージ:

したがって、このエラーは ClientSession が実際に使用するものと関係があると思います。ソースコードでは、実装で動作するはずの通常のバイト文字列を使用しているようです。ここを見て:

では、なぜこれらすべてのエラーが発生するのでしょうか? ありがとう。

0 投票する
2 に答える
247 参照

haskell - Haskell - バイト文字列の前にバイナリの長さをどのように追加しますか?

Haskell で Java ソケット API と直接やり取りする必要があるという不幸な状況に陥っています。Java 文字列がネットワーク経由で送信される方法は、その長さが文字列の先頭に追加されることです。

例えば:

文字列「Hello World」です

ByteString問題なく長さを取得できますが、 Int. Blaze Builder を使用して ByteStringに a を追加できますが、 を に変換するWord32便利な方法が見つかりません。これを行うために見つけられない便利な方法はありますか?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 投票する
1 に答える
514 参照

parsing - Haskell: ByteString からネストされたリストを読み取るために attoparsec を使用する方法

次のようなネストされたリストを含むテキスト ファイル (最大 300 MB) があります。

ファイルをhaskellIntegerリストに読み込むプログラムは次のとおりです。

ByteStringこれは小さなテキスト ファイルでは機能しますが、ファイルをすばやく読み取るために使用したいと考えています。ByteString の関数がないことがわかりましたread。代わりに、独自のパーサーを attoparsec で作成する必要があります。これは、ByteString の解析をサポートしているためです。

attoparsecネストされたリストを解析するにはどうすればよいですか?

0 投票する
1 に答える
6098 参照

haskell - 予想される型「Data.ByteString.Internal.ByteString」を実際の型「ByteString」と一致させることができませんでした

次のコードを実行します。

次のコンパイル エラーが発生します。

Data.ByteString.Internal.ByteStringなぜ aと a に違いがあるのか​​ わからないので、私は混乱していますByteString

0 投票する
4 に答える
783 参照

haskell - Haskell バイト文字列から Float 配列へ

こんにちは、私が取り組みたい float データ (単精度 32 ビット IEEE) のバイナリがあります。理想的には(IOArray Int Float)として、これをさらに使用するためにどのようにロードするのが最善ですか。

0 投票する
2 に答える
211 参照

c - より高速な ByteString 構築のヒント

私はHaskellを初めて使用し、効率の問題に悩まされています..

タスク: 列のサイズが一定の 4 GB のテキスト ファイルから CSV ファイルを作成する

列のサイズは既知です。たとえば、[col1: 幅 4 文字、col2: 幅 2 文字など...
ファイルには [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

本番環境では、データは 1 つのバイナリから別のバイナリにパイプされるため、ハード ドライブの IO はありません

ソリューションをテストするために SSD ドライブを使用しましたが、とにかく Ext4 がそのファイルを RAM にキャッシュしたと思います

バニラジェネレーター:

私のCソリューション:

発電機付き

@GabrielGonzalez Haskell ソリューション

発電機付き

私のHaskellソリューション

発電機付き

@LukeTaylorソリューション

発電機付き