04 2012 档案

[C++] 函数的概念
摘要:‘真正的’函数只有一种,对应成汇编里面的jmp,也就是跳转到某个地址去执行。所谓全局函数、局部函数、成员函数、静态成员函数、虚函数,都是各种美味的语法糖。全局函数基本上是原始意义上的函数。局部函数(static的全局函数)只是在gcc限制了只允许本cpp的代码jmp过去。实际上在汇编或者二进制级别... 阅读全文

posted @ 2012-04-20 11:07 如果蜗牛有爱情 阅读(148) 评论(0) 推荐(0) 编辑

你懂得C++越多,它就伤害你越深
摘要:前些天有个朋友问我,要不要去读读《Effective C++》,我忽然给出一个建议:不要读,最多看一下目录就好了。作为一本非常受欢迎的C++教材,我为什么要建议朋友不要读呢?事后我反思了一下我的想法:《Effective C++》其实是通过教授你技巧,而让你在深渊方向越走越深。精通C++的程序员常... 阅读全文

posted @ 2012-04-19 11:09 如果蜗牛有爱情 阅读(149) 评论(0) 推荐(0) 编辑

[C++] 在imagemagick里面如何设置jpeg:dct-method
摘要:和你预期的不同,你不能通过image.magick()来设置这个参数。正确的方法是:SetImageOption(image.imageInfo(), "jpeg:dct-method", "islow");这个参数对性能有好处,在基本不损失精度的前提下,提高速度。imagemagick缺省的dc... 阅读全文

posted @ 2012-04-13 13:47 如果蜗牛有爱情 阅读(255) 评论(0) 推荐(0) 编辑

IM设计思考:XMPP多用户文本聊天协议(MUC:Multi User Chat)
摘要:XMPP在其XEP-0045扩展中定义了一个用于多用户文本会议(群聊)的协议,类似于聊天室、QQ群等。由于它作为一个标准协议在定义模型上力求完备,涵盖了现实中的绝大部分IM产品模型,而现实中的IM产品基本都只实现了XMPP定义的模型中的一个子集。 XMPP定义的一些基本概念: 房间:房间的J... 阅读全文

posted @ 2012-04-10 12:53 如果蜗牛有爱情 阅读(323) 评论(0) 推荐(0) 编辑

常见开源项目的代码统计
摘要:以下统计只包含了主要模块,比如gcc没有包含gcj等模块,LibreOffice只包含了core模块,等。名字版本主要开发语音代码行数(千行)kernel3.0C13380gcc4.6C5109coreutils8.16C246libevent2.0C68mysql5.5C++1677lightt... 阅读全文

posted @ 2012-04-10 02:38 如果蜗牛有爱情 阅读(212) 评论(0) 推荐(0) 编辑

LibreOffice是用什么语言开发的?
摘要:LibreOffice就是以前的OpenOffice,它是用什么语言开发的?主页上介绍说是C++和Java,这两种语言各占多少比例呢?我用工具统计了一下,扩展名为“h,c,hxx,cxx,hpp,cpp”的文件共有代码 7,079,200 行。扩展名为java的文件共有代码 690,005 行。换... 阅读全文

posted @ 2012-04-10 01:41 如果蜗牛有爱情 阅读(536) 评论(0) 推荐(0) 编辑

IM设计思考:基于同步HTTP双向流(BOSH)的web im机制
摘要:在XMPP扩展协议XEP-0124中定义了一个传输协议来模拟两个实体 (例如一个客户端和一个服务器) 之间的长连双向TCP连接的语义,它有效地运用多个同步的HTTP"请求/应答"对,而不需要使用频繁的轮询或者分块响应。该协议简称BOSH(Bidirectional-streams Over S... 阅读全文

posted @ 2012-04-09 17:16 如果蜗牛有爱情 阅读(397) 评论(0) 推荐(0) 编辑

NIO系列5:事件模型
摘要:前文讲述了NIO数据读写处理,那么这些数据最终如何被递交给上层业务程序进行处理的呢? NIO框架一般都采用了事件派发模型来与业务处理器交互,它与原生NIO的事件机制是模型匹配的,缺点是带来了业务处理的碎片化。需要业务程序开发者对事件的生命周期有一个清晰的了解,不像传统方式那么直观。 事件派发器(... 阅读全文

posted @ 2012-04-01 08:10 如果蜗牛有爱情 阅读(165) 评论(0) 推荐(0) 编辑

NIO系列4:TCP服务数据读写
摘要:注:本文适合对象需对java NIO API的使用及异步事件模型(Reactor模式)有一定程度的了解,主要讲述使用java原生NIO实现一个TCP服务的过程及细节设计。 上文讲到当客户端完成与服务端的连接建立后,为其SocketChannel封装了一个session对象代表这个连接,并交给... 阅读全文

posted @ 2012-04-01 08:10 如果蜗牛有爱情 阅读(249) 评论(0) 推荐(0) 编辑

NIO系列3:TCP服务接入
摘要:注:本文适合对象需对java NIO API的使用及异步事件模型(Reactor模式)有一定程度的了解,主要讲述使用java原生NIO实现一个TCP服务的过程及细节设计。 前文讲述了NIO TCP服务绑定过程的实现机制,现在可以开始讲述服务监听启动后如何和处理接入和数据传输相关的细节设计。 ... 阅读全文

posted @ 2012-04-01 08:10 如果蜗牛有爱情 阅读(231) 评论(0) 推荐(0) 编辑

NIO系列2:TCP监听绑定
摘要:注:本文适合对象需对java NIO API的使用及异步事件模型(Reactor模式)有一定程度的了解,主要讲述使用java原生NIO实现一个TCP监听绑定的过程及细节设计。 我们一开始设计了一个TCP接入服务类,这个类提供了一个API方法提供对本地一系列地址(端口)的监听绑定,类初始化后完... 阅读全文

posted @ 2012-04-01 08:09 如果蜗牛有爱情 阅读(228) 评论(0) 推荐(0) 编辑

NIO系列1:框架拆解
摘要:最近一年用NIO写了不少网络程序,也研究了一些开源NIO网络框架netty、mina等,总结了一下NIO的架构特点。 无论是netty还是mina它们都在java原生NIO的基础上进行了完善的封装,虽然细节有所不同,但总体架构思路一致,都大概划分出了以下几个组成部分: - - transport... 阅读全文

posted @ 2012-04-01 08:09 如果蜗牛有爱情 阅读(150) 评论(0) 推荐(0) 编辑

导航