Seabass Native I/O.

********************************************************************************
 対応CPU X86系 対応OS Windows(32/64) Linux(32/64)
********************************************************************************
※JNIは、Sun(Oracle)のJavaが速度が速いので、こちらで実行を勧めます。

Javaでは出来ない、メモリ操作関連を実装したパッケージです。
また、Javaでは速度が遅いファイルI/O関連を改善しています。

このパッケージを利用した場合、いくつかの利点が存在します。

・java.nio.DirectByteBufferは、速度が遅い。
　それに比べ、このパッケージでのNativeメモリ操作は、高速である。

＜100byteの情報に0〜99までの100情報を１００万ループ処理。これを５回ループした結果＞
　　ByteBuffer(Direct):time:974msec　JavaMemoryの約1.69倍遅い
　　Seabass Native I/O:time:683msec　JavaMemoryの約1.18倍遅い　DirectByteBufferと比べて1.42倍速度が速い.
　　JavaMemory:time:575msec

・java.io.RandomAccessFileオブジェクトは、速度が遅い。
　それに比べ、このパッケージでは、約３倍の高速化が見込める。

Seabass Native I/Oでは、Javaのパッケージと比べ、Nativeメモリや
ファイルI/Oの高速化を期待出来る。

しかし、欠点としては、C言語と同じでメモリ解放を自分で行う必要があるので、
メモリリーク等の欠点があります。
また、プロセスのメモリを直接操作するので、メモリ範囲外を書き込んだりすると
Javaプロセスが強制終了したりもします。


********************************************************************************
＊Version-1.0.2
********************************************************************************

LZO圧縮、解凍の実装。

LZOは、圧縮率は低いですが、速度は他の圧縮形式と比べても高速です。
１．Javaでよく使われるInputStream,OutputStreamでの実装

org.maachang.jni.io.LzoInputStream
org.maachang.jni.io.LzoOutputStream

２．メモリ上での実装
org.maachang.jni.io.CompressMemoryLzo
org.maachang.jni.io.DecompressMemoryLzo

３．生実装
org.maachang.jni.io.Lzo

これら３種類の実装で提供しています。
また、１と２に対するフォーマットの互換性はありません。
ただし、１と比べて２の方がNativeBuffer→byte[]変換がない分高速に動作します。
しかし、NativeBufferでの処理となるので、２についてはメモリ依存となります。

ファイルに出力する場合ならば、１を使う方が効率が良いでしょう。
速度だけを重視するならば、２の方が稼げます。


********************************************************************************
＊Version-1.0.3
********************************************************************************

Google Snappy圧縮、解凍の実装。

Google Snappyは、圧縮率は低いですが、速度は他の圧縮形式と比べても高速です。
また、LZOよりも速度は速いが、逆にLZOよりも圧縮率は低いものとなっています。
１．Javaでよく使われるInputStream,OutputStreamでの実装

org.maachang.jni.io.SnappyInputStream
org.maachang.jni.io.SnappyOutputStream

２．生実装
org.maachang.jni.io.Lzo

これら２種類の実装で提供しています。
