扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:论坛整理 来源:ZDNet网络安全 2007年12月19日
关键字: telnet命令 opentelnet linux telnet telnet入侵 telnet telnet端口
b) 减小内存的峰值使用,特别是堆栈中内存很多人习惯写程序时候在堆栈上声明一个比较大的临时数组,认为退出函数之后这部分内存会自动被释放。殊不知这样分配的内存并不会被动态被系统回收,因为系统并没有一个明显的标记可以得知堆栈内存是否还在使用中,特别是在多线程的环境下面,操作系统通常采用的措施是需要的时候分配页面,但是在进程退出之前并不回收。即使是通过malloc 分配的堆内存,其页面是否回收也视库函数的实现而不确定。因此在无论什么情况下,贸然分配过大的内存,都会对性能造成一定的影响。
c) 如有可能,尽量使用shm 来保证页面一定会被多个进程共享。
3: CPU 优化这里说的CPU 使用优化,不包括像使用hash 来代替线性查找这类最基本的算法优化,而是涉及一些和系统关系比较密切的操作。
a) 使用针对硬件优化的编译器这应该是所有CPU 相关优化中最容易做到也是最容易看到效果的,Intel CPU 的Linux 系统上面使用 Intel C/C++编译器,可以获得很好的效果,甚至AMD的Athlon 系列CPU 也能获得一定程度的加速。BBS 进站时候需要初始化很多内容,计算量比较大,使用gcc 时候负载在4 左右,使用icc 编译以后负载马上下降到1 以下。推荐编译时候针对特定CPU 指令集优化并且打开跨文件优化选项(-ipo)
b) 使用单独进程来初始化和维护共享内容,避免出现竞争导致逻辑错误严格讲这并不能提升很多性能,只是为了减少多进程服务器上面经常出现的逻辑错误。在原始的BBS 设计中,共享资源的创建是由第一个访问的进程在打开失败时候创建的,但是重负载服务器上面有时候打开也会失败,从而导致多次创建共享资源。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。