3

ファイル I/O を実行せずに、バイト ストリームを厳密に読み取ることなく、CPU プロファイリングのために圧縮タスクを繰り返し実行したいと考えています。これを Java で実行したい (私のベンチマークのターゲット)。

誰かがこれを行う方法を提案していますか? ZipEntry を使用する Zip API を使用しましたが、ZipEntry はファイル I/O をトリガーします。

提案やコードサンプルは大歓迎です。

4

2 に答える 2

4

ZipEntry を使用する Zip API を使用しましたが、ZipEntry はファイル I/O をトリガーします。

ByteArrayOutputStream基になる出力としてa を使用する場合、私はそれを期待しません:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zipStream = new ZipOutputStream(baos);
... write to zipStream ...

同様に、 からデータを読み取るByteArrayInputStreamためにバイト配列をラップします。

もちろん、ZipOutputStreamzip 圧縮形式を使用してコンテンツを作成する場合は、これが適切です。これは、複数のファイルに適しています (または、少なくとも処理します:)。単一のデータ ストリームの場合は、 or を使用し、基になる出力として a を使用することもDeflaterOutputStreamできますGZIPOutputStreamByteArrayOutputStream

于 2012-09-28T14:38:10.613 に答える
1

FileInputStream または FileOutputStream を使用する代わりに、ByteArrayInputStream および ByteArrayOutputStream を使用できます。

于 2012-09-28T14:38:00.177 に答える