自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cometeor的专栏

语言的意义即用法

  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于iostreams的效率

    简单测试发现iostreams::stream的效率比我想象中要低...看了一下源码,发现写入流的数据并不是直接写入到device中,而是在内部缓存起来,缓冲区满或者调用flush时才把数据复制到device里,造成不必要的内存拷贝。缓冲的机制对于比较慢的device(如标准io、文件流等)是常用的策略,不过对于我的应用来说(相当于把流输出到vector中)就是不必要的步骤了。仔细阅读手册

2010-05-21 17:41:00 2988

原创 protobuf消息的自动派发

google protobuf消息序列化后的数据是没有类型信息的。而一般网络应用要求序列化后发送到对端,还原出类型,反序列化,再派发给相应的消息处理函数。以下代码简单实现了自动派发的机制。新增protobuf消息只要增加一行声明的代码和相应的处理函数就可以了。http://eddyserver.googlecode.com/svn/trunk/common/tests/protoserve

2010-05-20 17:19:00 4508 1

原创 整合protobuf、boost::iostreams和NetMessage类

示例代码见http://eddyserver.googlecode.com/svn/trunk/common/tests/messagetest.cc NetMessage类提供了兼容stl的接口,通过boost::iostreams示例的ContainerDevice可以方便的与boost::iostreams::stream结合起来。而boost::iostreams::str

2010-05-20 16:56:00 4493

原创 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

原创 boost::bind效率上的注意事项

今天粗略测试了一下boost::bind的性能,得出以下几个猜测(仅限于gcc,windows下未测试):boost::function内部预留了(sizeof(成员函数指针) + sizeof(指针))的空间,所以如果bind的参数占用空间小,则会使用placement new的方式,不会涉及动态内存分配。典型的情况如boost::bind(成员函数指针, 对象指针),或者全局函数指针加少量

2010-05-15 13:39:00 5785 1

原创 代码已上传至googlecode

本blog的相关代码svn checkout http://eddyserver.googlecode.com/svn/trunk/ eddyserver-read-only未完善,烂是烂了点...

2010-05-14 22:13:00 4430 4

原创 boost::asio 1.4.3的linux实现总算采用epoll的et模式了

Asio:Improved performance.Reduced compile times.Reduced the size of generated code.Extended the guarantee that background threads dont call user code to all asynchronous operations (#3923).

2010-05-14 22:08:00 6133

原创 高效的网络消息类实现

感谢gogoplayer提供的思路。 事情的经过是这样的:几天前gogoplayer跟我提到想用引用计数来解决消息广播时拷贝多份的问题,顺带提到boost::shared_ptr的引用计数是线程安全的。这一点跟我的记忆有出入,于是查boost的手册确认了一下,发现从1.33.0开始shared_ptr就用了lock-free来实现线程安全,相当高效。 于是就想把原本的NetMess

2010-05-14 21:40:00 4118

Unity3D插件NGUI 2.7.0最新版

Unity3D使用最普遍的GUI插件NGUI,高效易用

2013-09-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除