日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

web 服务器 内存 影响_C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出...

發(fā)布時(shí)間:2024/7/23 c/c++ 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web 服务器 内存 影响_C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C/C++服務(wù)器開(kāi)發(fā)7大常用開(kāi)源庫(kù),在這里簡(jiǎn)單介紹一下。

1、OpenSSL

OpenSSL是一個(gè)開(kāi)放源代碼的安全套接字層密碼軟件庫(kù),囊括主要的密碼算法、常用的密鑰和證書(shū)封裝管理功能及SSL協(xié)議,應(yīng)用程序可以使用這個(gè)包來(lái)進(jìn)行安全通信,避免竊聽(tīng),同時(shí)確認(rèn)另一端連接者的身份。

這個(gè)庫(kù)廣泛被應(yīng)用在互聯(lián)網(wǎng)的網(wǎng)頁(yè)服務(wù)器上,在使用Https的應(yīng)用程序中也需要用到這個(gè)庫(kù)來(lái)支撐Https業(yè)務(wù)。

2、TinyXML

TinyXML是一個(gè)開(kāi)源的原生C++的XML解析庫(kù),能夠在Windows或Linux中編譯,同時(shí)TinyXML提供完整的在線文檔,方便開(kāi)發(fā)和使用。

這個(gè)解析庫(kù)既能構(gòu)建XML格式數(shù)據(jù),也能解析XML數(shù)據(jù)。通過(guò)解析XML文件,然后在內(nèi)存中生成DOM模型,從而讓我們很方便的遍歷這棵XML樹(shù)。

目前,由于其簡(jiǎn)便性和穩(wěn)定性,使用ZLib license(可以用于開(kāi)源和商業(yè))等原因,TinyXML已經(jīng)廣泛被用于開(kāi)源社區(qū)和商業(yè)系統(tǒng)中。

3、JsonCPP

JSON是一個(gè)輕量級(jí)數(shù)據(jù)交換格式,其可讀性好,數(shù)據(jù)量比XML格式小,被廣泛作為網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)格式。

JsonCpp是一個(gè)序列化反序列JSON格式的開(kāi)源C++庫(kù),被C++程序廣泛使用(包括Chromium項(xiàng)目)。JsonCpp還有一個(gè)重要特性是其支持在JSON格式內(nèi)注釋,這對(duì)于使用JSON格式作為配置文件很有意義,可以給配置添加注釋說(shuō)明其用途。

一般情況下,客戶(hù)端在和Web服務(wù)器的交互通信中,交互的數(shù)據(jù)都是用JSON格式,組裝和解析JSON數(shù)據(jù)都需要用到JsonCpp庫(kù)。

4、ProtoBuf

ProtoBuf是google 的一種數(shù)據(jù)交換的格式,它獨(dú)立于語(yǔ)言,獨(dú)立于平臺(tái)。google 提供了多種語(yǔ)言的實(shí)現(xiàn):java、c#、c++、go 和 python,每一種實(shí)現(xiàn)都包含了相應(yīng)語(yǔ)言的編譯器以及庫(kù)文件。由于它是一種二進(jìn)制的格式,比使用 xml 進(jìn)行數(shù)據(jù)交換快許多。可以把它用于分布式應(yīng)用之間的數(shù)據(jù)通信或者異構(gòu)環(huán)境下的數(shù)據(jù)交換。作為一種效率和兼容性都很優(yōu)秀的二進(jìn)制數(shù)據(jù)傳輸格式,可以用于諸如網(wǎng)絡(luò)傳輸、配置文件、數(shù)據(jù)存儲(chǔ)等諸多領(lǐng)域。

5、Libevent

Libevent 是一個(gè)用C語(yǔ)言編寫(xiě)的、輕量級(jí)的開(kāi)源高性能事件通知庫(kù),主要有以下幾個(gè)亮點(diǎn):事件驅(qū)動(dòng)( event-driven),高性能;輕量級(jí),專(zhuān)注于網(wǎng)絡(luò),不如 ACE 那么臃腫龐大;源代碼相當(dāng)精煉、易讀;跨平臺(tái),支持 Windows、 Linux、 *BSD 和 Mac Os;支持多種 I/O 多路復(fù)用技術(shù), epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定時(shí)器和信號(hào)等事件;注冊(cè)事件優(yōu)先級(jí)。

Libevent 已經(jīng)被廣泛的應(yīng)用,作為底層的網(wǎng)絡(luò)庫(kù)。著名分布式緩存軟件memcached也是基于Libevent的,而且libevent在使用上可以做到跨平臺(tái),而且根據(jù)libevent官方網(wǎng)站上公布的數(shù)據(jù)統(tǒng)計(jì),似乎也有著非凡的性能。還有很多諸如Vomit、 Nylon、 Netchat等也在使用Libevent的。

6、TCMalloc

TCMalloc 是 Google 開(kāi)發(fā)的內(nèi)存分配器,在不少項(xiàng)目中都有使用,例如在 Golang 中就使用了類(lèi)似的算法進(jìn)行內(nèi)存分配。它具有現(xiàn)代化內(nèi)存分配器的基本特征:對(duì)抗內(nèi)存碎片、在多核處理器能夠 scale。據(jù)稱(chēng),它的內(nèi)存分配速度是 glibc2.3 中實(shí)現(xiàn)的 malloc的數(shù)倍。現(xiàn)在被廣泛用到各大應(yīng)用系統(tǒng)中。這個(gè)模塊也可以用來(lái)讓MySQL在高并發(fā)下內(nèi)存占用更加穩(wěn)定。

7、memcached

memcached是一套分布式的快取系統(tǒng),與redis相似,當(dāng)初是Danga Interactive為了LiveJournal所發(fā)展的,但被許多軟件(如MediaWiki)所使用。這是一套開(kāi)放源代碼軟件,以BSD license授權(quán)協(xié)議發(fā)布。

memcached缺乏認(rèn)證以及安全管制,這代表應(yīng)該將memcached服務(wù)器放置在防火墻后。

memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 為首開(kāi)發(fā)的一款軟件。已成為mixi、hatena、Facebook、Vox、LiveJournal等眾多服務(wù)中提高Web應(yīng)用擴(kuò)展性的重要因素。許多Web應(yīng)用都將數(shù)據(jù)保存到RDBMS中,應(yīng)用服務(wù)器從中讀取數(shù)據(jù)并在瀏覽器中顯示。

但隨著數(shù)據(jù)量的增大、訪問(wèn)的集中,就會(huì)出現(xiàn)RDBMS的負(fù)擔(dān)加重、數(shù)據(jù)庫(kù)響應(yīng)惡化、網(wǎng)站顯示延遲等重大影響。

這時(shí)就該memcached大顯身手了。memcached是高性能的分布式內(nèi)存緩存服務(wù)器。一般的使用目的是,通過(guò)緩存數(shù)據(jù)庫(kù)查詢(xún)結(jié)果,減少數(shù)據(jù)庫(kù)訪問(wèn)次數(shù),以提高動(dòng)態(tài)Web應(yīng)用的速度、提高可擴(kuò)展性。

總結(jié)

以上是生活随笔為你收集整理的web 服务器 内存 影响_C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。