poco c++和Boost庫的對比分析
POCO的優點:
1) 比boost更好的線程庫,特別是一個活動的方法的實現,並且還可設置線程的優先級。
2) 比 boost:asio更全面的網絡庫。但是boost:asio也是一個非常好的網絡庫。
3) 包含了一些Boost所不包含的功能,像XML,數據庫接口等。
4) 跟Boost相比,集成度更高,是更加統一的一個庫。
5) Poco的c++代碼更清潔,現代和易理解。對不是模板編程專家的人來說,POCO的代碼比大多數Boost庫容易理解得多
6) 可以在許多平台上使用
POCO的缺點:
1) 文檔有限。但這一定程度上是因為代碼的容易理解。
2) 跟Boost相比用戶社群小得多。
3) 有多少能集成進C++標准是個問題。而Boost在這方面不是個問題。
Boost的特點:
Boost是高質量的庫,但它不是個框架。
Boost:asio處理高並發的效率還可以。單連接吞吐稍微弱點。如果選用,最好封裝好,別讓boost代碼吞噬你的代碼,那樣最後不可收拾。
asio在windows下效率是最好的。基本接近自己在iocp上開發的效率。
在linux下,他默認選用epoll, 但中間為了做了層stream cache, 效率稍有損失。而且他的epoll規則用的不太合理, 可以自己修改他的代碼,達到自己的需求。
在freebsd下,他默認是select的,要自己修改他的代碼條件編譯,才可以支持kqueue