一、安装与使用
libfastcommon作为一个高性能的通用库,安装及使用非常简单,只需要几个简单的步骤即可:
1、下载源码包
# wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz
2、解压并编译安装
# tar zxvf V1.0.39.tar.gz # cd libfastcommon-V1.0.39/ # ./make.sh # ./make.sh install
此时,libfastcommon的动态库文件libfastcommon.so将会被安装到系统库目录下,您就可以在程序中使用libfastcommon的函数了。
二、libfastcommon.so
libfastcommon作为一个高性能的通用库,其功能非常强大,其中的libfastcommon.so作为该库的核心动态库,也是我们在程序中最常用的部分之一。
其中,下面这段代码演示了如何使用libfastcommon.so来进行日志输出:
#include "logger.h" int main() { log_init(); log_set_level(LOG_DEBUG); log_set_output_f(stdout); LOGINFO("Hello, world!"); log_destroy(); return 0; }
通过上述代码,我们可以看到,使用libfastcommon开发程序非常方便,只需要包含相应的头文件,调用相关的函数即可完成对所需功能的使用,而log_init、log_set_level、log_set_output_f、LOGINFO等函数均是libfastcommon为我们提供的常见接口。
三、libfastcommon安装
为了方便大家更好地了解libfastcommon的安装过程,我们将会介绍几种常见的安装方式。
1、使用yum命令
如果您使用的是CentOS系统,可以使用yum命令进行安装,如下:
# yum install libfastcommon-devel
2、使用源码包
如果您使用的是其他系统,或者yum无法安装该库的最新版本,您可以尝试使用源码包进行安装,安装过程和上文中的一致。
四、libfastcommon性能分析
libfastcommon作为一个高性能的通用库,其性能表现非常优秀,我们来看下面的测试结果:
测试环境:
计算机配置:Intel Core i5-9400F CPU @ 2.90GHz *6
操作系统:CentOS 7.8.2003
测试程序:
#include #include "pthread_func.h" #include "time_func.h" #define TEST_TIMES 1000000 #define THREAD_COUNT 8 DEFINE_PTHREAD_FUNC_ARG(test_func, pArg) { int *pCount = (int*)pArg; char buff[128]; int len; while (*pCount < TEST_TIMES) { len = sprintf(buff, "%ld-%d\n", time(NULL), *pCount); write_all(STDOUT_FILENO, buff, len); (*pCount)++; } return NULL; } int main() { int i, count = 0; pthread_t threads[THREAD_COUNT]; for (i=0; i<THREAD_COUNT; i++) { pthread_create(&threads[i], NULL, test_func, &count); } for (i=0; i<THREAD_COUNT; i++) { pthread_join(threads[i], NULL); } return 0; }
测试结果:
$ time ./test real 0m1.213s user 0m1.008s sys 0m0.851s
通过上述测试结果我们可以看到,libfastcommon可以高效地处理大量的I/O读写请求,适用于各种高并发场景。
五、libfastcommon其他特性
除了以上介绍的常见特性之外,libfastcommon还提供了许多其他的特性,包括对文件操作的封装、对socket的封装、对字符串操作的封装、对系统调用的封装、针对线程和进程管理的封装等等,这里不再一一赘述,大家可以在官网上查看相关的文档和API。
总结
通过本文的介绍,我们不难发现,libfastcommon作为一款高性能通用库,可以为我们的程序开发提供很多便利和效率,无论是从安装、使用、性能表现还是其他特性方面,都是我们必不可少的工具之一。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/237933.html