php エディター Zimo は、「バイト ファイルを int64 スライスに読み取る最も効果的な方法は何ですか?」という一般的な質問に答えます。バイトを変換する必要がある場合、ファイルが読み取られる場合、 int64 スライスに変換するには、次の方法を使用できます。まず、file_get_contents 関数を使用してバイト ファイルを読み取り、次に unpack 関数を使用してバイト ファイルを int64 スライスに解凍します。この方法はシンプルかつ効率的で、ニーズに合わせてバイト ファイルを int64 スライスにすばやく変換できます。この方法が皆さんのお役に立てれば幸いです!
パックされた int64 ファイルがいくつかあります。それらは int64 スライスとしてメモリ内に必要です。問題は、ファイルを結合するとマシンのメモリ サイズの半分を超えるため、スペースが限られていることです。 Go の標準オプションは次のようになります:
リーリー残念ながら、binary
パッケージは、サイズ f.size()*8
の []byte
をすぐに割り当て、メモリ不足になります。
一度に各バイトを 1 つずつ読み取ってスライスにコピーすれば機能しますが、これでは遅すぎます。
理想的な状況は、[]byte
を []int64
に直接変換し、コンパイラーに「OK、これらは整数になりました」と伝えることですが、明らかにそれはうまくいきません。の作品です。同様のことを実現する方法はありますか?おそらく安全でないパッケージを使用するか、絶対に必要な場合に c を追加しますか?
パックされた int64 ファイルがいくつかあります。それらは int64 スライスとしてメモリ内に必要です。問題は、ファイルを結合するとマシンのメモリ サイズの半分を超えるため、スペースが限られていることです。
go の標準オプションは次のようになります:
リーリー残念ながら、バイナリ パッケージはすぐにサイズ f.size()*8 の [] バイトを割り当て、メモリ不足になります。
すべての関数は最小限のメモリを使用します。
リーリー たとえば、amd64 (リトルエンディアン) アーキテクチャとリトルエンディアン データ (データ変換は必要ありません) で最大限の効率を得るには、readfileint64se
を使用します。
バイトオーダーの誤謬 - ロブ・パイク
https://commandcenter.blogspot.com/2012/04/byte-order-fallacy.html
以上がバイト ファイルを int64 スライスに読み取る最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。