美文网首页
编写高效服务器程序,需要考虑的因素

编写高效服务器程序,需要考虑的因素

作者: HenryTien | 来源:发表于2017-03-31 10:50 被阅读25次
  • 系统的硬件资源,比如说CPU个数,速度,内存大小等
  • 一方面是指系统的软件资源,比如操作系统允许用户打开的最大文件描述符数量
  • 并发处理 进程池或线程池实现高效的并发模式(半同步、半异步、领导者、追随者模式),以及高效的逻辑处理方式--有限状态机
  • 内存的规划使用
    使用内存池,以空间换时间,被实现创建好,避免动态分配,减少服务器对内核的访问频率
  • 避免不必要的数据复制,减少将数据从内核缓冲拷贝到应用程序缓冲区中。以ftp服务器来说,并不需要知道目标文件的内容,直接使用‘零拷贝’函数sendfile。当两个工作进程之间需要传递大量数据时,应该考虑使用共享内存在他们直接共享这些数据,而不是使用管道或者消息队列来传递。
  • 上下文切换和锁
  1. 过多的进程或县城之间的切换占用了大量CPU时间,服务器真正处理业务逻辑的CPU时间比重就下降了。因此为每个客户端创建一个工作线程是不可取的。高效并发模式
  2. 锁的引入不仅需要处理业务逻辑,而且需要访问内核资源,所以尽量避免使用锁。一定要使用的话,考虑粒度问题,比如读写锁,当工作线程都只读一块内存区域时,读写锁不会增加系统开销,而只有需要写是才能真正需要锁住这块内存区域。
    对于高峰和低峰的伸缩处理
    适度的缓存

相关文章

  • 编写高效服务器程序,需要考虑的因素

    系统的硬件资源,比如说CPU个数,速度,内存大小等 一方面是指系统的软件资源,比如操作系统允许用户打开的最大文件描...

  • 优化程序性能

    优化程序性能 编写高效程序需要做到如下几点1.选择适当的算法和数据结构。 2.编写出编译器能够有效优化以转换成高效...

  • C++ 服务端 性能优化入门

    编写正常运行的程序很容易,但一旦数据量大起来,对代码的性能就需要认真考虑了。对于服务器来说,如果客户端一次访问,就...

  • 论程序优化一般考虑的几个方向

    写程序最主要的目标是使它在任何情况下都能正确工作,但在很多情况下,让程序运行的快也是一个重要的因素。编写高效程序要...

  • 买房需要考虑的因素

    在自己买第一套房过程中,从2016年到2021年经历了5年的时光,到今年终于买下了刚需房,这段心路里程需要自己回顾...

  • solidity的helloWord

    为了初次编写solidity程序的方便,无需考虑本地环境的影响。我们使用remix编写hello world程序。...

  • 软件系统体系结构

    常见软件体系结构 C/Sc/s结构即客户端/服务器(Client/Server),需要编写服务器程端程序,以及客户...

  • Golang通过Thrift框架完美实现跨语言调用

    每种语言都有自己最擅长的领域,Golang 最适合的领域就是服务器端程序。 做为服务器端程序,需要考虑性能同时也要...

  • 第5章 优化程序性能

    编写高效程序需要做到以下几点:1.选择适当的算法和数据结构。2.编写出能有效优化以转化成高效可执行代码的编译器。 ...

  • MapReduce开发总结

    在编写mapreduce程序时,需要考虑的几个方面: 1.输入数据接口:InputFormat 默认使用的实现类是...

网友评论

      本文标题:编写高效服务器程序,需要考虑的因素

      本文链接:https://www.haomeiwen.com/subject/mmvmottx.html