我的见解:对于高性能软件,一直认为只要在应用端做足够的性能优化就可以了。
这两天看了下面的一系列文章,极大的开阔了视野。将可能的性能瓶颈,从用户态程序转移至内核态程序。固然操作系统对硬件设备做了一层处理,极大的方便了用户进行调用。但在有的场景下,这一层处理速度是否足够,其实也是要打一层问号。如果真的碰到了性能瓶颈,用户态程序、内核态程序都有很大的优化空间,要对其进行综合优化,涉及到大量知识,如操作系统设计(线程、进程、线程切换、阻塞IO、非阻塞IO、同步调用、异步调用)、应用程序开发等。
如下图,从最基础的调用模式中,可以看出一条数据从发送到接收,一共经历了几个环节。各个环节中的耗时,因不同的使用场景而定。在特定场景下,耗时的操作,需要有针对性的进行优化,最终得到一个适用的解决方案。
以下文章引用自“即时通讯网”