poco vs Boost

Wooce Yang收集整理 
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在这方面不是个问题。 

许多POCO的用户把POCO和Boost一起并用。 
Boost是高质量的库,但它不是个框架。 
Boost:asio处理高并发的效率还可以。 单连接吞吐稍微弱点。  如果选用, 最好封装好, 别让boost代码吞噬你的代码, 那样最后不可收拾。 呵呵。 
asio在windows下效率是最好的。 基本接近自己在iocp上开发的效率。 在linux下, 他默认选用epoll, 但中间为了做了层stream cache, 效率稍有损失。 而且他的epoll规则用的不太合理, 可以自己修改他的代码, 达到自己的需求。 
在freebsd下, 他默认是select的, 要自己修改他的代码条件编译, 才可以支持kqueue

时间: 2024-10-22 07:42:32

poco vs Boost的相关文章

c++网络库调研

搜索关键词 C++ 网络库 Network Library TCP Server 网络库总结 开源C/C++网络库比较 http://blog.csdn.net/langeldep/article/details/6976120 在开源的C/C++网络库中,常用的就那么几个,在业界知名度最高的,应该是ACE了,不过是个重量级的大家伙,轻量级的有libevent, libev,还有 Boost的ASIO. ACEhttp://www.cs.wustl.edu/~schmidt/ACE.html A

C++ POCO库中文编程参考指南(1) 总览

1 What is POCO? POCO 是什么?这是我最常被人问到的.POCO 是 POrtable COmponents 的缩写,官方主页:POCOProject.org.是一个非常出色的 C++ 库,相当于 Java 的 Class Library..NET 的 Framework 和 Apple 的 Cocoa.它与 Boost 是非常不同的,简单说 Boost 就是相当于 Advanced STL. 2 本系列文章所使用的 POCO 版本 POCO C++ Library 1.4.3p

POCO库中文编程参考指南(1)总览

POCO库中文编程参考指南(1)总览 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.com (# -> @) 日期:April 14th, 2012 1 What is POCO? POCO 是什么?这是我最常被人问到的.POCO 是 POrtable COmponents 的缩写,官方主页:POCOProject.org.是一个非常出色的 C++ 库,相当于 Java 的 Class Library..NET

c++-C++ 时间调用除了boost库还有什么第三方

问题描述 C++ 时间调用除了boost库还有什么第三方 在做C++的项目过程中,原来对于时间的处理部分直接调用了Boost库中提供的gregorian和posix_time命名空间中的方法.现在由于某些方面的原因,需要解除对boost库的依赖.请问除了调用c++基本库中的方法有什么其他的可用第三方时间调用库吗? 解决方案 既然要用其它第三方,为啥不选boost 解决方案二: boost稍显庞大,工程需要多平台支持.boost多个平台需要分别编译对应的版本.出现错误,调试起来也比较麻烦 解决方案

C++ 日志库 boost::log 以及 glog 的对比

该文章转自阿里ata精选文章,作者为苏樽 日志能方便地诊断程序原因.统计程序运行数据,是大型软件系统必不可少的组件之一.本文将从设计上和功能上对比 C++ 语言常见的两款日志库: boost::log 和 google-glog .   设计 boost::log 的设计主要有日志器( Logger ).日志核心( Logging core ). Sink 前后端( frontend, backend )组成.日志文本以及日志环境由日志器( Logger )负责搜集,日志核心负责处理日志数据(例

boost库之tokenizer的使用

    在tokenizer出现之前,如果我们要对一个字符串进行分割,可能要自己封装一个函数.如果有n种不同的分割规则,那么你要封装n个不同的分割函数--太麻烦了!现在好了,Boost库的tokenizer封装了统一的语法来分割字符串,并且提供了三种常用的分割方式,足以满足我们的绝大多数编程需求.    tokenizer主要由分割器和迭代器两部分组成.分割器用于指定字符串的分割规则,如果不指定任何分割器,则tokenizer默认将字符串以空格和标点(键盘上除26个字母(包括大小写)和数字外的其

背景建模技术(八):bgslibrary_vs2010_mfc中boost的安装与配置

一.boost的下载与安装 在玩BGS Library时,有一个MFC的项目,在编译的过程中出现如下图的错误提示: 即: 1>e:\bgslibrary-master\vs2010mfc\src\stdafx.h(50): fatal error C1083: Cannot open include file: 'boost/lexical_cast.hpp': No such file or directory 根本原因在于没有安装和配置boost,下面对bgslibrary_vs2010_m

并发编程(二):分析Boost对 互斥量和条件变量的封装及实现生产者消费者问题

请阅读上篇文章<并发编程实战: POSIX 使用互斥量和条件变量实现生产者/消费者问题>.当然不阅读亦不影响本篇文章的阅读. Boost的互斥量,条件变量做了很好的封装,因此比"原生的"POSIX mutex,condition variables好用.然后我们会通过分析boost相关源码看一下boost linux是如何对pthread_mutex_t和pthread_cond_t进行的封装. 首先看一下condition_variable_any的具体实现,代码路径:/

在VS中使用Boost库出现Macro redefinition错误如何解决

最近使用Boost库做多线程开发,可视在vs中编译工程师总是遇到Macro redefinition错误,类似下面的错误描述 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdint.h(116): warning C4005: 'INT8_C' : macro redefinition 1>         c:\vc\include\boost\cstdint.hpp(376) : see previou