問題タブ [buffer]
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.
ruby - Ruby に実際の StringBuffer や StringIO がないのはなぜですか?
最近、Rubyでの使用に関するすばらしい記事を読みました。StringIO
ただし、著者が言及していないのは、それStringIO
が単なる「私」であるということです。「お」がない。たとえば、次のようにすることはできません。
Ruby は、Java が持っているのと同じように StringBuffer を実際に必要とします。StringBuffers には 2 つの重要な目的があります。まず、Ruby の StringIO が行うことの半分の出力をテストできます。第二に、それらは小さな部品から長い文字列を構築するのに役立ちます. Joel が何度も私たちに思い出させてくれることは、そうでなければ非常に遅いことです.
良い代替品はありますか?
Ruby の文字列が変更可能であることは事実ですが、それは常にその機能に依存する必要があるという意味ではありません。が大きい場合stuff
、たとえば、これのパフォーマンスとメモリの要件は非常に悪いです。
Javaでこれを行う「正しい」方法は次のとおりです。
私のJavaは少し錆びていますが。
python - Python のバイナリ バッファ
Python では、文字データ用のファイルのようなバッファーにStringIOを使用できます。メモリ マップト ファイルは基本的にバイナリ データに対して同様のことを行いますが、ベースとして使用されるファイルが必要です。Python には、Java のByteArrayOutputStreamと同等の、バイナリ データを対象としたメモリのみのファイル オブジェクトがありますか?
私が持っているユースケースは、メモリ内に ZIP ファイルを作成したいというもので、ZipFileにはファイルのようなオブジェクトが必要です。
java - すべての文字を読み取るときに、InputStreamReader よりも BufferedReader を使用する理由はありますか?
現在、次の関数を使用して単純な HTTP GET を実行しています。
BufferedReader
すべてを順番にダウンロードするだけなので、を使用する理由はありません。BufferedReader
この場合、の使用はないと考えるのは正しいですか?
.net - .net マネージ コードを使用したコマンド ウィンドウのスクリーン スクレイピング
フレームワーク 2.0 の Process オブジェクトを使用してスクリプトとコマンド ライン プログラムを実行するプログラムを dot net で作成しています。プログラム内のプロセスのスクリーン バッファにアクセスできるようにしたいと考えています。これを調査したところ、コンソールの stdout および stderr バッファにアクセスする必要があるようです。マネージ コードを使用してこれを行う方法を知っている人はいますか?
コンソール画面から文字と属性データのブロックを読み取るには、タスクに接続されている Windows コンソールの AttachConsole と ReadConsoleOutput を使用する必要があると思います。これを行う必要があるのはマネージド コードです。
http://msdn.microsoft.com/en-us/library/ms684965(VS.85).aspxを参照してください。
javascript - Web ブラウザーで 1 から 1,000,000 (スペースで区切られた) を印刷するのに、これが最速の JavaScript である理由は何ですか?
ここでJavaScript の出力バッファリングについて読んでいて、ウェブページに 1 から 1,000,000 を印刷するのが最も速いと著者が言うスクリプトに頭を悩ませようとしていました。(ヘッダーの「100 万回の勝利のスクリプト」までスクロールします。) 少し調べた後、いくつか質問があります。
- 他のアプローチと比較して、このスクリプトが非常に効率的である理由は何ですか?
- バッファリングによって速度が上がるのはなぜですか?
- 使用する適切なバッファ サイズをどのように決定しますか?
- このスクリプトをさらに最適化するための秘訣を知っている人はいますか?
(これはおそらく CS101 だと思いますが、私は独学のハッカーの 1 人であり、この集団の知恵から恩恵を受けることを望んでいました。ありがとう!)
java - 大きなファイルをバッファリングします。BufferedInputStream は 2 GB に制限されています。2^31 バイトに制限された配列
大きなファイルを順次処理していますが、その大きなチャンクをメモリに保持したいと考えています。64 ビット システムでは 16 GB RAM を使用できます。
これを行う手っ取り早い方法は、単純に入力ストリームをバッファリングされた入力ストリームにラップすることです。残念ながら、これでは 2 GB のバッファしか得られません。もっと記憶に残しておきたいのですが、他にどのような方法がありますか?
winapi - FILE_FLAG_NO_BUFFERING で開いたファイルの末尾をどのように書き込むのですか?
私は VB6 と Win32 API を使用してファイルにデータを書き込んでいます。この機能はデータのエクスポート用であるため、ディスクへの書き込みパフォーマンスが考慮事項の重要な要素です。そのため、 への呼び出しでファイルを開くときにFILE_FLAG_NO_BUFFERING
およびオプションを使用しています。FILE_FLAG_WRITE_THROUGH
CreateFile
FILE_FLAG_NO_BUFFERING
独自のバッファーを使用して、ディスクのセクター サイズの倍数でファイルにデータを書き込む必要があります。これは、セクター サイズの正確な倍数でない場合、文字が含まれるデータの最後の部分を除いて、通常は問題ありません。最後のブロックが書き込まれたら、これらの文字ゼロを含めないようにファイル サイズを設定するにはどうすればよいですか?
使用できますSetEndOfFile
が、これには、ファイルを閉じて、使用せずに再度開く必要がありますFILE_FLAG_NO_BUFFERING
。誰かが話しているのを見NtSetInformationFile
たことがありますが、VB6でこれを使用して宣言する方法が見つかりません。SetFileInformationByHandle
私がやりたいことを正確に行うことができますが、それは Windows Vista でのみ利用可能です。私のアプリケーションは、以前のバージョンの Windows と互換性がある必要があります。
vim - Vim でバッファをリセットする
vim セッションの代替バッファを以前のものにリセットすることは可能ですか?
代替バッファとは、# で参照されるもの、つまり cntl-^ を入力したときに表示されるものを意味します。
main.c と other.c を開いて :ls を実行すると、次のようになります。
たとえば、別のファイル (たとえば、refer.c) を開くと、:ls で次のようになります。
refer.c を含むバッファーを削除すると、:ls は次のように表示されます。
しかし、cntl-^ を実行すると、refer.c が再び表示されます。
vim に代替バッファを自動的に最後のものにリセットさせる方法はありますか? 代替バッファーの「履歴」?
または、 a :2 b を実行して other.c を代替バッファーにリロードすることに固執していますか?
それとも、この動作には正当な理由があるのでしょうか?
java - Java を使用して .zip アーカイブを作成するためのバッファ サイズは?
このコードを使用して、ファイルのリストを含む .zip を作成します。
zip アルゴリズムと ZipOutputStream がどのように機能するのかわかりません。すべてのデータを読み取って「zos」に送信する前に何かを書き込むと、別のバッファ サイズを選択した場合とは結果ファイルのバイト サイズが異なる場合があります。
つまり、アルゴリズムが次のようになっているかどうかはわかりません。
データの読み取り-->データの処理-->.ZIP の作成
また
データのチャンクを読み取る-->データのチャンクを処理する-->.ZIPにチャンクを書き込む-->| ^-------------------------------------------------- -------------------------------------------------- --------------------------
この場合、最適なバッファ サイズはどれくらいですか?
アップデート:
このコードをテストし、バッファー サイズを 1024 から 64 に変更して、同じファイルを圧縮しました。1024 バイトでは、80 KB の結果ファイルは、64 バイトのバッファーよりも 3 バイト小さくなりました。最も短い時間で最小の .zip を生成するのに最適なバッファー サイズはどれですか?
java - FileInputStream を使用する場合、理想的なバッファ サイズをどのように決定しますか?
ファイルから MessageDigest (ハッシュ) を作成するメソッドがあり、これを多数のファイル (>= 100,000) に対して行う必要があります。パフォーマンスを最大化するには、ファイルからの読み取りに使用するバッファーをどのくらい大きくする必要がありますか?
ほとんどの人は基本的なコードに精通しています (念のためここで繰り返します):
スループットを最大化するためのバッファの理想的なサイズは? これはシステムに依存していることはわかっています。OS、ファイルシステム、およびHDD に依存していると確信しており、他のハードウェア/ソフトウェアが混在している可能性があります。
(私は Java に少し慣れていないので、これは私が知らない Java API 呼び出しである可能性があることを指摘しておく必要があります。)
編集:これが使用されるシステムの種類を事前に知らないため、多くを想定することはできません。(そのためJavaを使用しています。)
編集:上記のコードには、投稿を小さくするためのtry..catchなどのものがありません