function sqlite_test_blosc
clear all
close all
clc
dummy = mksqlite('version mex');
fprintf( '\n\n' );
database = 'demo.db';
if exist( database, 'file' )
delete( database );
end
mksqlite( 'open', database );
mksqlite( ['CREATE TABLE demo ' , ...
' ( id PRIMARY KEY, ' , ...
' type, ' , ...
' data, ' , ...
' pack_ratio, ' , ...
' pack_time, ' , ...
' unpack_time ' , ...
' )'] );
compressors = { 'lz4', 'lz4hc', 'blosclz' };
typed_blob_mode = 2;
compression_level = 9;
mksqlite( 'typedBLOBs', typed_blob_mode );
mksqlite( 'compression_check', 1 );
fprintf( 'Please wait, while generating 500 entries...\n' );
for n = 1:500
data = cumsum( randn( 10000, 1) );
type = randi(size(compressors)-1) + 1;
compressor = compressors{type};
mksqlite( 'compression', compressor, compression_level );
mksqlite( ['INSERT INTO demo ', ...
' (id, type, data) ', ...
' VALUES (?,?,?)'], ...
n, type, data );
mksqlite( ['UPDATE demo SET ', ...
' pack_time = BDCPackTime(data), ' , ...
' unpack_time = BDCUnpackTime(data), ' , ...
' pack_ratio = BDCRatio(data) ' , ...
' WHERE id = ?'], n );
if n > 1
fprintf( '%c', ones(3,1)*8 );
end
fprintf( '%03d', n );
end
fprintf( '\n\n\n' );
for i = 1:3
fprintf( 'Statistics for %s with max. compression rate:\n', compressors{i} );
mksqlite( ['SELECT ', ...
' MIN(pack_time), AVG(pack_time), MAX(pack_time), ', ...
' MIN(unpack_time), AVG(unpack_time), MAX(unpack_time), ', ...
' MIN(pack_ratio), AVG(pack_ratio), MAX(pack_ratio) ', ...
' FROM demo WHERE type = ?'], i )
end
mksqlite( 0, 'close' );
mksqlite Version 2.5 build: 133, ein MATLAB Interface zu SQLite
(c) 2008-2017 by Martin Kortmann <mail@kortmann.de>
Andreas Martin <andimartin@users.sourceforge.net>
basierend auf SQLite Version 3.16.2 - http://www.sqlite.org
mksqlite verwendet:
- DEELX perl kompatible regex engine Version 1.3 (Sswater@gmail.com)
- BLOSC/LZ4 1.3.0-rc3.dev zur Datenkompression (Francesc Alted / Yann Collett)
- MD5 Message-Digest Algorithm (RFC 1321) Implementierung von Alexander Peslyak
Platform: PCWIN64, little endian
Please wait, while generating 500 entries...
500
Statistics for lz4 with max. compression rate:
ans =
MIN_pack_time_: 5.865423008799553e-005
AVG_pack_time_: 1.897347559530648e-004
MAX_pack_time_: 2.654103736858815e-004
MIN_unpack_time_: 2.404823317192495e-005
AVG_unpack_time_: 6.944193873178764e-005
MAX_unpack_time_: 8.504863944835961e-005
MIN_pack_ratio_: 0.796850000000000
AVG_pack_ratio_: 0.837729971590908
MAX_pack_ratio_: 0.886337500000000
Statistics for lz4hc with max. compression rate:
ans =
MIN_pack_time_: 0.001160473853815
AVG_pack_time_: 0.003533715474077
MAX_pack_time_: 0.005888004438020
MIN_unpack_time_: 2.199533628299832e-005
AVG_unpack_time_: 6.350419662339845e-005
MAX_unpack_time_: 9.677946218289435e-005
MIN_pack_ratio_: 0.784250000000000
AVG_pack_ratio_: 0.828442421875000
MAX_pack_ratio_: 0.867137500000000
Statistics for blosclz with max. compression rate:
ans =
MIN_pack_time_: 3.601369389798492e-004
AVG_pack_time_: 0.001069625970203
MAX_pack_time_: 0.001181589381304
MIN_unpack_time_: 4.428395186550915e-005
AVG_unpack_time_: 1.408559779165222e-004
MAX_unpack_time_: 1.648183970246464e-004
MIN_pack_ratio_: 0.784200000000000
AVG_pack_ratio_: 0.836732621951219
MAX_pack_ratio_: 0.872887500000000