web 服务器 内存 影响_C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出...
C/C++服務器開發7大常用開源庫,在這里簡單介紹一下。
1、OpenSSL
OpenSSL是一個開放源代碼的安全套接字層密碼軟件庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議,應用程序可以使用這個包來進行安全通信,避免竊聽,同時確認另一端連接者的身份。
這個庫廣泛被應用在互聯網的網頁服務器上,在使用Https的應用程序中也需要用到這個庫來支撐Https業務。
2、TinyXML
TinyXML是一個開源的原生C++的XML解析庫,能夠在Windows或Linux中編譯,同時TinyXML提供完整的在線文檔,方便開發和使用。
這個解析庫既能構建XML格式數據,也能解析XML數據。通過解析XML文件,然后在內存中生成DOM模型,從而讓我們很方便的遍歷這棵XML樹。
目前,由于其簡便性和穩定性,使用ZLib license(可以用于開源和商業)等原因,TinyXML已經廣泛被用于開源社區和商業系統中。
3、JsonCPP
JSON是一個輕量級數據交換格式,其可讀性好,數據量比XML格式小,被廣泛作為網絡傳輸的數據格式。
JsonCpp是一個序列化反序列JSON格式的開源C++庫,被C++程序廣泛使用(包括Chromium項目)。JsonCpp還有一個重要特性是其支持在JSON格式內注釋,這對于使用JSON格式作為配置文件很有意義,可以給配置添加注釋說明其用途。
一般情況下,客戶端在和Web服務器的交互通信中,交互的數據都是用JSON格式,組裝和解析JSON數據都需要用到JsonCpp庫。
4、ProtoBuf
ProtoBuf是google 的一種數據交換的格式,它獨立于語言,獨立于平臺。google 提供了多種語言的實現:java、c#、c++、go 和 python,每一種實現都包含了相應語言的編譯器以及庫文件。由于它是一種二進制的格式,比使用 xml 進行數據交換快許多。可以把它用于分布式應用之間的數據通信或者異構環境下的數據交換。作為一種效率和兼容性都很優秀的二進制數據傳輸格式,可以用于諸如網絡傳輸、配置文件、數據存儲等諸多領域。
5、Libevent
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
TCMalloc 是 Google 開發的內存分配器,在不少項目中都有使用,例如在 Golang 中就使用了類似的算法進行內存分配。它具有現代化內存分配器的基本特征:對抗內存碎片、在多核處理器能夠 scale。據稱,它的內存分配速度是 glibc2.3 中實現的 malloc的數倍。現在被廣泛用到各大應用系統中。這個模塊也可以用來讓MySQL在高并發下內存占用更加穩定。
7、memcached
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應用的速度、提高可擴展性。
總結
以上是生活随笔為你收集整理的web 服务器 内存 影响_C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 谷歌浏览器设置代理_linu
- 下一篇: 钉钉关键字回复功能_在家办公首日:钉钉、