您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > C/C++/C#

C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出

时间:2020-05-21 13:34:41  来源:  作者:

C/C++服务器开发7大常用开源库,在这里简单介绍一下。

1、OpenSSL

C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出
 
 
 

OpenSSL是一个开放源代码的安全套接字层密码软件库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。

这个库广泛被应用在互联网的网页服务器上,在使用Https的应用程序中也需要用到这个库来支撑Https业务。

2、TinyXML

C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出
 
 
 

TinyXML是一个开源的原生C++的XML解析库,能够在windowslinux中编译,同时TinyXML提供完整的在线文档,方便开发和使用。

这个解析库既能构建XML格式数据,也能解析XML数据。通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。

目前,由于其简便性和稳定性,使用ZLib license(可以用于开源和商业)等原因,TinyXML已经广泛被用于开源社区和商业系统中。

3、JsonCPP

C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出
 
 
 

JSON是一个轻量级数据交换格式,其可读性好,数据量比XML格式小,被广泛作为网络传输的数据格式。

JsonCpp是一个序列化反序列JSON格式的开源C++库,被C++程序广泛使用(包括Chromium项目)。JsonCpp还有一个重要特性是其支持在JSON格式内注释,这对于使用JSON格式作为配置文件很有意义,可以给配置添加注释说明其用途。

一般情况下,客户端在和Web服务器的交互通信中,交互的数据都是用JSON格式,组装和解析JSON数据都需要用到JsonCpp库。

4、ProtoBuf

C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出
 
 
 

ProtoBuf是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:JAVA、c#、c++、go 和 Python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

5、Libevent

C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出
 
 
 

Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。

Libevent 已经被广泛的应用,作为底层的网络库。著名分布式缓存软件memcached也是基于Libevent的,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。还有很多诸如Vomit、 Nylon、 Netchat等也在使用Libevent的。

6、TCMalloc

C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出
 
 
 

TCMalloc 是 Google 开发的内存分配器,在不少项目中都有使用,例如在 Golang 中就使用了类似的算法进行内存分配。它具有现代化内存分配器的基本特征:对抗内存碎片、在多核处理器能够 scale。据称,它的内存分配速度是 glibc2.3 中实现的 malloc的数倍。现在被广泛用到各大应用系统中。这个模块也可以用来让MySQL在高并发下内存占用更加稳定。

7、memcached

C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出
 
 
 

memcached是一套分布式的快取系统,与redis相似,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用。这是一套开放源代码软件,以BSD license授权协议发布。

memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。

memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。

但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。

这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。



Tags:C/C++   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、编程语言1.根据熟悉的语言,谈谈两种语言的区别?主要浅谈下C/C++和PHP语言的区别:1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较多的应用于Web应用开发,现在好多互...【详细内容】
2021-12-15  Tags: C/C++  点击:(17)  评论:(0)  加入收藏
函数调用约定(Calling Convention),是一个重要的基础概念,用来规定调用者和被调用者是如何传递参数的,既调用者如何将参数按照什么样的规范传递给被调用者。在参数传递中,有两个很...【详细内容】
2021-11-30  Tags: C/C++  点击:(19)  评论:(0)  加入收藏
一、内存泄漏(memory leak)内存泄漏(memory leak)是指由于疏忽或错误造成了程序未能释放掉不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存...【详细内容】
2021-09-03  Tags: C/C++  点击:(105)  评论:(0)  加入收藏
一、前言其实对 C/C++ 的应用来说,查看函数时间调用和内存消耗调用的有很多工具,valgrind 这个工具算是做得比较不错的一个。建议直接用 yum 安装,有的说可以安装更新的版本,像...【详细内容】
2021-07-09  Tags: C/C++  点击:(135)  评论:(0)  加入收藏
在 C/C++ 中,sizeof() 是一个判断数据类型或者表达式长度的运算符。1 sizeof 定义sizeof 是 C/C++ 中的一个操作符(operator),返回一个对象或者类型所占的内存字节数。The size...【详细内容】
2020-08-06  Tags: C/C++  点击:(80)  评论:(0)  加入收藏
最简单的方法是用vc6新建一个Win32 Application空工程,然后添加一个cpp文件,输入 (注意添加对话框资源,并且在对话框上添加一个文本框)#include#include "resource.h"// DialogPr...【详细内容】
2020-07-14  Tags: C/C++  点击:(111)  评论:(0)  加入收藏
Visual Studio代码扩展入门:用于C/C++静态分析的VS Code配置在此文章中,我将与您分享一些有关为Visual Studio Code编辑器配置和使用我们全新的C/C++test静态分析扩展的提示。...【详细内容】
2020-06-19  Tags: C/C++  点击:(534)  评论:(0)  加入收藏
C/C++服务器开发7大常用开源库,在这里简单介绍一下。1、OpenSSL OpenSSL是一个开放源代码的安全套接字层密码软件库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SS...【详细内容】
2020-05-21  Tags: C/C++  点击:(310)  评论:(0)  加入收藏
1 代码区存放 CPU 执行的机器指令。通常代码区是可共享的(即另外的执行程序可以调用它),使其可共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可。代码区通常是...【详细内容】
2020-03-31  Tags: C/C++  点击:(62)  评论:(0)  加入收藏
1.内存管理是否正确(因为这个程序本身开辟很多内存空间进行缓存管理,同时这个程序程序本身就是基于C/C++开发的,内存管理机制一直是程序员头痛的东西) 2.程序的健硕性如何(服...【详细内容】
2020-03-06  Tags: C/C++  点击:(48)  评论:(0)  加入收藏
▌简易百科推荐
一、简介很多时候我们都需要用到一些验证的方法,有时候需要用正则表达式校验数据时,往往需要到网上找很久,结果找到的还不是很符合自己想要的。所以我把自己整理的校验帮助类分...【详细内容】
2021-12-27  中年农码工    Tags:C#   点击:(2)  评论:(0)  加入收藏
引言在学习C语言或者其他编程语言的时候,我们编写的一个程序代码,基本都是在屏幕上打印出 hello world ,开始步入编程世(深)界(坑)的。C 语言版本的 hello world 代码:#include <std...【详细内容】
2021-12-21  一起学嵌入式    Tags:C 语言   点击:(11)  评论:(0)  加入收藏
读取SQLite数据库,就是读取一个路径\\192.168.100.**\position\db.sqlite下的文件<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/...【详细内容】
2021-12-16  今朝我的奋斗    Tags:c#   点击:(21)  评论:(0)  加入收藏
什么是shellshell是c语言编写的程序,它在用户和操作系统之间架起了一座桥梁,用户可以通过这个桥梁访问操作系统内核服务。 它既是一种命令语言,同时也是一种程序设计语言,你可以...【详细内容】
2021-12-16  梦回故里归来    Tags:shell脚本   点击:(18)  评论:(0)  加入收藏
一、编程语言1.根据熟悉的语言,谈谈两种语言的区别?主要浅谈下C/C++和PHP语言的区别:1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较多的应用于Web应用开发,现在好多互...【详细内容】
2021-12-15  linux上的码农    Tags:c/c++   点击:(17)  评论:(0)  加入收藏
1.字符串数组+初始化char s1[]="array"; //字符数组char s2[6]="array"; //数组长度=字符串长度+1,因为字符串末尾会自动添&lsquo;\0&lsquo;printf("%s,%c\n",s1,s2[2]);...【详细内容】
2021-12-08  灯-灯灯    Tags:C语言   点击:(47)  评论:(0)  加入收藏
函数调用约定(Calling Convention),是一个重要的基础概念,用来规定调用者和被调用者是如何传递参数的,既调用者如何将参数按照什么样的规范传递给被调用者。在参数传递中,有两个很...【详细内容】
2021-11-30  小智雅汇    Tags:函数   点击:(19)  评论:(0)  加入收藏
一、问题提出问题:把m个苹果放入n个盘子中,允许有的盘子为空,共有多少种方法?注:5,1,1和1 5 1属同一种方法m,n均小于10二、算法分析设f(m,n) 为m个苹果,n个盘子的放法数目,则先对...【详细内容】
2021-11-17  C语言编程    Tags:C语言   点击:(49)  评论:(0)  加入收藏
一、为什么需要使用内存池在C/C++中我们通常使用malloc,free或new,delete来动态分配内存。一方面,因为这些函数涉及到了系统调用,所以频繁的调用必然会导致程序性能的损耗;另一...【详细内容】
2021-11-17  深度Linux    Tags:C++   点击:(38)  评论:(0)  加入收藏
OpenCV(Open Source Computer Vision Library)是一个(开源免费)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android、ios等操作系统上,它轻量级而且高效---由一系列...【详细内容】
2021-11-11  zls315    Tags:C#   点击:(50)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条