高性能网络编程(引自即时通讯网)

我的见解:对于高性能软件,一直认为只要在应用端做足够的性能优化就可以了。

这两天看了下面的一系列文章,极大的开阔了视野。将可能的性能瓶颈,从用户态程序转移至内核态程序。固然操作系统对硬件设备做了一层处理,极大的方便了用户进行调用。但在有的场景下,这一层处理速度是否足够,其实也是要打一层问号。如果真的碰到了性能瓶颈,用户态程序、内核态程序都有很大的优化空间,要对其进行综合优化,涉及到大量知识,如操作系统设计(线程、进程、线程切换、阻塞IO、非阻塞IO、同步调用、异步调用)、应用程序开发等。

如下图,从最基础的调用模式中,可以看出一条数据从发送到接收,一共经历了几个环节。各个环节中的耗时,因不同的使用场景而定。在特定场景下,耗时的操作,需要有针对性的进行优化,最终得到一个适用的解决方案。

高性能网络编程(引自即时通讯网)_第1张图片


以下文章引用自“即时通讯网”

  • 《高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少》
  • 《高性能网络编程(二):上一个10年,著名的C10K并发连接问题》
  • 《高性能网络编程(三):下一个10年,是时候考虑C10M并发问题了》
  • 《高性能网络编程(四):从C10K到C10M高性能网络应用的理论探索》
  • 《高性能网络编程(五):一文读懂高性能网络编程中的I/O模型》
  • 《高性能网络编程(六):一文读懂高性能网络编程中的线程模型》
  • 《高性能网络编程(七):到底什么是高并发?一文即懂!》
  • 《高性能网络编程经典:《The C10K problem(英文)》[附件下载]》

你可能感兴趣的:(计算机基础,架构师之路,网络,服务器,数据库)