boost
文章平均质量分 52
cometeor
这个作者很懒,什么都没留下…
展开
-
boost::bind效率上的注意事项
今天粗略测试了一下boost::bind的性能,得出以下几个猜测(仅限于gcc,windows下未测试):boost::function内部预留了(sizeof(成员函数指针) + sizeof(指针))的空间,所以如果bind的参数占用空间小,则会使用placement new的方式,不会涉及动态内存分配。典型的情况如boost::bind(成员函数指针, 对象指针),或者全局函数指针加少量原创 2010-05-15 13:39:00 · 5785 阅读 · 1 评论 -
asio socket::close时异步操作的处理
asio中socket通常的用法如class Session { public: void HandleRead(const boost::system::error_code& error, size_t bytes_transferred) { if (error) { delete this;原创 2010-05-18 19:09:00 · 8261 阅读 · 1 评论 -
关于iostreams的效率
简单测试发现iostreams::stream的效率比我想象中要低...看了一下源码,发现写入流的数据并不是直接写入到device中,而是在内部缓存起来,缓冲区满或者调用flush时才把数据复制到device里,造成不必要的内存拷贝。缓冲的机制对于比较慢的device(如标准io、文件流等)是常用的策略,不过对于我的应用来说(相当于把流输出到vector中)就是不必要的步骤了。仔细阅读手册原创 2010-05-21 17:41:00 · 2988 阅读 · 0 评论