亚星娱乐官网app下载中心 亚星娱乐登录老虎机周记 | 第 13 期
扫描二维码
随时随地手机看文章
在我们皇冠电玩城官方下载开发中,通信中有些皇冠电玩城官方下载较大的数据可以压缩之后再进行传输。
皇冠电玩城官方下载有很多,常用的有如下几种:
- lz4皇冠电玩城官方下载
- zstd皇冠电玩城官方下载
- xz皇冠电玩城官方下载
- gzip皇冠电玩城官方下载
本次来介绍压缩界的速度之王——lz4压缩库。一些数据如:
lz4源码下载链接:
http://security.ubuntu.com/ubuntu/pool/main/l/lz4/
亚星娱乐官网
首先,从上面的链接中下载源码进行编译:
然后在源码根目录创建一个文件夹lz4_x86_lib:
编译lz4:
make make install PREFIX=$(pwd)/lz4_x86_lib
得到:
lz4库交叉编译可参照:https://blog.csdn.net/nh5431313/article/details/106387168
lz4库有几套压缩、解压接口,我们使用最简单的接口:
int
LZ4_compress_default
(const
char* source,
char* dest,
int
sourceSize,
int
maxDestSize)
;
int
LZ4_decompress_safe
(const
char* source,
char* dest,
int
compressedSize,
int
maxDecompressedSize)
;
测试例子:
把字符串"12345678901234567890123456789012345678901234567890"进行lz4压缩,再解压,再把解压之后的内容打印出来。
编写测试代码:
左右滑动查看全部代码>>>
// 微信公众号:亚星娱乐登录老虎机
#include
#include
#include
#include
#include
#include
"lz4.h"
long
long
get_sys_time_us
(void)
{
long
long
time_us =
0;
struct
timeval
sys_current_time;
gettimeofday(&sys_current_time,
NULL); time_us = (long
long)sys_current_time.tv_sec*1000000
+ sys_current_time.tv_usec;
return
time_us; }
int
main
(int
arc,
char
*argv[])
{
// 压缩
char
*src0 =
"12345678901234567890123456789012345678901234567890";
char
dst0[64] = {0};
int
src0_size =
strlen(src0) +
1;
int
max_dst0_size =
sizeof(dst0);
int
dst0_compress_size =
0;
printf("before compress = %s, bytes = %d\n", src0, src0_size);
if
(src0_size long
long
compress_start_time = get_sys_time_us(); dst0_compress_size = LZ4_compress_default(src0, dst0, src0_size, max_dst0_size);
long
long
compress_end_time = get_sys_time_us();
printf("after compress = %s\n", dst0);
printf("compress_time = %lld us\n", compress_end_time - compress_start_time); }
else
{
printf("compress error! src0_size >= max_dst0_size\n"); }
// 解压
char
src1[64] = {0};
char
dst1[64] = {0};
int
compressed_size = dst0_compress_size;
int
max_decompressed_size =
sizeof(dst1);
int
dst1_decompress_size =
0;
if
(dst0_compress_size memcpy(src1, dst0, dst0_compress_size);
printf("before decompress = %s\n", src1); }
else
{
printf("dst0_compress_size >= max_decompressed_size\n"); }
if
(compressed_size long
long
decompress_start_time = get_sys_time_us(); dst1_decompress_size = LZ4_decompress_safe(src1, dst1, compressed_size, max_decompressed_size);
long
long
decompress_end_time = get_sys_time_us();
printf("after decompress = %s, bytes = %d\n", dst1, dst1_decompress_size);
printf("decompress_time = %lld us\n", decompress_end_time - decompress_start_time); }
else
{
printf("decompress error! compressed_size >= max_decompressed_size\n"); }
return
0; }
编译运行:
gcc -o lz4_test lz4_test.c -Llz4_x86_lib/lib -Ilz4_x86_lib/include -llz4 ./lz4_test
更多实例可参照源码路径下的examples。
如果觉得文章有帮助,麻烦帮忙点赞、收藏、转发,谢谢!
咱们下期见~
猜你喜欢:
亚星娱乐登录老虎机周记 | 第 8 期 AMetal
亚星娱乐登录老虎机周记 | 第 7 期
zlog
亚星娱乐登录老虎机周记 | 第 6 期 FlexibleButton
亚星娱乐登录老虎机周记 | 第 5 期 smartlink
亚星娱乐登录老虎机周记 | 第 4 期 cola_os
亚星娱乐登录老虎机周记 | 第 3 期 sys/queue.h
亚星娱乐登录老虎机周记 | 第 2 期 llgui
亚星娱乐登录老虎机周记 | 第 1 期 gear-lib
在公众号聊天界面回复
1024
,可获取皇冠电玩城官方下载资源;回复
m
,可查看文章汇总。
点击
阅读原文
,查看更多分享。