摘要: 转自:http://www.uml.org.cn/SoftWareProcess/201108154.asp 请阅读原文 0. 软件开发的本质 先让我们看看一般的产品生产: 例一,汽车生产。原材料、配件等采购完毕(我这里说到了采购配件,这相当于把部分功能的生产转交给其他职能公司。对应到软件生产的(子 阅读全文
posted @ 2016-09-01 14:01 青茶柠檬 阅读(2634) 评论(0) 推荐(1) 编辑
摘要: 1、首先写代码时要控制内存的释放,比如new之后要delete,看析构函数是否真的执行(很多人编写释放内存的代码在析构函数中处理的),如果没有真正执行,就需要动态释放对象;前段时间在一个项目中使用了单例模式对象,将构造函数和析构函数设置成保护类型,在运行代码时退出时不执行到析构函数里面(具体也不知道什么原因),最后只有手动删除对象。2、其次让程序长时间运行,看任务管理器对应程序内存是不是一直向上增加;3、最后使用常用内存泄漏检测工具来检测内存泄漏点。文本主要描述一些内存泄漏检测工具功能介绍与简单使用方法。一、对于VS2005/VS2008编译器自带的内存检测工具/函数。 在 main() 函数 阅读全文
posted @ 2013-07-28 15:37 青茶柠檬 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 最近使用TinyXML进行C++ XML解析,感觉使用起来比较简单,很容易上手,本文给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方法来完成。以后的文章里会讲解使用Xerces进行C++ XML解析的例子,希望大家一起交流。TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。 阅读全文
posted @ 2012-12-26 16:46 青茶柠檬 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions)blocking I/O 这个不用多解释吧,阻塞套接字。下图是它调用过程的图示:重点解释下上图,下面例子都会讲到。首先application调用 recvfrom()转入kernel,注意kernel有2个过程,wait for data和copy data from kernel to user 阅读全文
posted @ 2012-05-18 17:50 青茶柠檬 阅读(235) 评论(0) 推荐(0) 编辑
摘要: select 和 epoll最近有朋友在面试的时候被问了select 和epoll效率差的原因,和一般人一样,大部分都会回答select是轮询、epoll是触发式的,所以效率高。这个答案听上去很完美,大致也说出了二者的主要区别。 今天闲来无事,翻看了下内核代码,结合内核代码和大家分享下我的观点。 一、连接数我本人也曾经在项目中用过select和epoll,对于select,感触最深的是linux下select最大数目限制(windows 下似乎没有限制),每个进程的select最多能处理FD_SETSIZE个FD(文件句柄), 如果要处理超过1024个句柄,只能采用多进程了。 常见的使用sle 阅读全文
posted @ 2012-05-18 17:42 青茶柠檬 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 单例模式也称为单件模式、单子模式。单例模式有许多种实现方法,甚至可以直接用一个全局变量做到这一点,但这样的代码显得很不优雅。《设计模式》一书中给出了一种很不错的实现。定义:确保一个类只有一个实例,而且自行实例化,并提供一个访问它的全局访问点,该实例被所有程序模块共享。类型:创建类模式类图:单例模式应该是23种设计模式中最简单的一种模式了。它有以下几个要素:私有的构造方法指向自己实例的私有静态引用以自己实例为返回值的静态的公有的方法 单例模式根据实例化对象时机的不同分为两种:一种是饿汉式单例,一种是懒汉式单例。饿汉式单例在单例类被加载时候,就实例化一个对象交给自己的引用;而懒汉式在调用取得实例方 阅读全文
posted @ 2012-03-28 14:40 青茶柠檬 阅读(1014) 评论(6) 推荐(1) 编辑