int main(int argc, char *argv[]) { FILE *f = fopen(argv[1], "rb"); if (!f) { return 0; } fseek(f, 0, SEEK_END); long file_size = ftell(f); fseek(f, 0, SEEK_SET); if (file_size >= 0x100000000) file_size = 0xFFFFFFFF; void* inpbuffer = malloc((size_t) file_size); void* outbuffer = malloc((size_t) file_size); fread(inpbuffer, 1, (size_t) file_size, f); lzo_uint compressed_size = file_size; void* wrkmem = malloc(LZO1_MEM_COMPRESS); gettimeofday(&time_start, NULL); lzo1_compress(inpbuffer, (unsigned int) file_size, outbuffer, &compressed_size, wrkmem); gettimeofday(&time_end, NULL); printf("Duration: %lu\n", ((time_end.tv_sec * 1000) + (time_end.tv_usec / 1000)) - ((time_start.tv_sec * 1000) + (time_start.tv_usec / 1000))); printf("Original: %lu\n",file_size); printf("Compressed: %lu\n",compressed_size); }
int64_t lzbench_lzo1_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, char* workmem) { lzo_uint lzo_complen = 0; int res; if (!workmem) return 0; if (level == 99) res = lzo1_99_compress((uint8_t*)inbuf, insize, (uint8_t*)outbuf, &lzo_complen, (void*)workmem); else res = lzo1_compress((uint8_t*)inbuf, insize, (uint8_t*)outbuf, &lzo_complen, (void*)workmem); if (res != LZO_E_OK) return 0; return lzo_complen; }