C++
文章平均质量分 68
pmunix
这个作者很懒,什么都没留下…
展开
-
C++和Java区别
(1) Java有垃圾回收机制,当然也就没有C++的析构函数。但是,可控制性和C++相比就差了一点,而且也不是说有了垃圾回收,就不会产生内存泄漏。由于相互引用等原因可能造成对象的生存周期过长,垃圾回收失效。对象内存的回收,个人认为应该是由程序员来掌握的事情。C++可以用auto_ptr,shared_ptr等智能指针来完成自动析构,当然前提是你要熟悉他们的实现机制和应用场合(2原创 2007-03-08 00:48:00 · 2112 阅读 · 2 评论 -
依赖反转,异常,auto_ptr,多态,STL容器,虚构造函数
(1) 栈上变量必须初始化(2) 从堆上分配的内存必须初始化 (3) 栈上局部变量是否有大数组变量,导致栈超出默认限制溢出 (4) 栈中是否有不合理的递归,导致栈超出默认限制溢出 (5) 必须对内存耗尽的情况进行处理(6) 释放某个指针后,必须将该指针变量赋值为NULL, 避免野指针的出现(7) 禁止对同一指针delete或者free两次或以上(8) 对数组操作,必须强原创 2007-09-21 00:51:00 · 778 阅读 · 0 评论 -
网络错误
10055 --- 队列已满或者缓冲区空间不足, 以前只所以出现这种问题,就在于收到10060后,继续send。 修改办法就是sleep一段时间或者轮询不断的send. 主要还是connect或者send过于频繁,导致系统资源耗尽。 10048 --- 本地没有可以使用的端口,最大的可能是1-65535大部分端口都处于time_wait状态,该状态出现在ip测试工具测原创 2009-05-31 13:34:00 · 841 阅读 · 0 评论 -
template method pattern 和一些C++惯用法
Template method pattern是GOF24种设计模式中的一种即名”模板方法模式”,意图即为”定义一个算法的骨架, 将具体的算法实现延迟到子类中实现。”在M4.3多线路服务端的预研开发中,服务端主要实现一个连接代理转发数据的功能,但是连接的种类繁多。有多线路自身的命令隧道,数据传输隧道,应用层代理连接。每一种隧道的数据读取方式都是相同的,都是利用环形缓冲区空间去readv某原创 2009-09-24 20:48:00 · 789 阅读 · 0 评论 -
在C++函数中优雅的处理资源释放
在C++函数中优雅的处理资源释放 在审查代码的过程中发现如下代码:conf_t cdConf = conf_new();if (cdConf == NULL){ return -1;} if (conf_load(au.get(), CLUSTERD_CONF) == 0){ conf_delete(cdConf);原创 2009-10-19 20:00:00 · 1269 阅读 · 0 评论 -
Linux下劫持connect到指定IP地址
3.1.1 Linux系统调用原理 每个系统调用都是通过一个单一的入口点多路传入内核。eax 寄存器用来标识应当调用的某个系统调用,这在 C 库中做了指定(来自用户空间应用程序的每个调用)。当加载了系统的 C 库调用索引和参数时,就会调用一个软件中断(0x80 中断),它将执行 system_call 函数(通过中断处理程序),这个函原创 2009-11-30 20:16:00 · 2738 阅读 · 0 评论 -
Linux下服务端程序性能优化
这个问题说起来可大可小,可长可短,基本都是自己切身的经验总结。 高爷爷说过"过早的优化是万恶之源",做开发不可能一开始就想着优化,应该从全局考量,从各个角度去思考,权衡利弊,做出一个 符合大局利益的设计,下来再考虑如何优化。 优化是在现有已成形的设计架构下,做的性能提升。假如你一开始就设计一个低性能的架构,满足不了需求,这种只能推到重来,还优化干嘛。 经验总结如下:原创 2010-05-18 18:16:00 · 780 阅读 · 0 评论