event_loop实际是一个无限循环,还记得在讲epoll的时候,我们将各种套接字使用epoll监听起来,然后在一个循环里阻塞在epoll_wait函数,当它返回的时候说明有事件发生。event_loop本质上也是阻塞在epoll,但event_loop和我们之前的实现不一样的地方在于,它连接了我们设计的各种对象,比如buffer、channel、tcp_connection等,这些...
使用 rdtsc 也需要注意一些技术要点:固定CPU频率,在高性能应用程序中,通常建议禁用CPU的动态调整功能,特别是在BIOS设置和内核裁剪编译两个环节都要禁止电源管理(防止降频);绑定线程到特定的CPU核,同时进行CPU亲和性设置,防止高性能线程的中断;测量时间过程中尽量不要进行系统调用,包括不限于:延迟和定时;文件和阻塞式...
获取实时网络统计信息iptraf 显示主机上网络接口带宽使用情况iftop 2、高性能网络设计专栏 (一)网络编程异步网络库zvnet 网络io与io多路复用select/poll/epoll socket与文件描述符的关联 多路复用select/poll 代码实现LT/ET的区别 事件驱动reactor的原理与实现 reactor针对业务实现的优点 poll封装send_ cb/recv_ _cb/ ...
这里重点讲两个瓶颈点,第一个就是全局的队列,在我们在写用户态网络程序中,对同一个网络端口,仅允许一个监听实例,接收的数据包由一个队列来维护,并发的短连接请求较大时,会对这个队列造成较大的竞争压力,成为一个很大瓶颈点,至少在linuxkernel 3.9版本之前是这样,在3.9的版本合并了一个很关键的特性SO_REUSEPORT,...
5. Muduo:一个基于C++11标准的高性能网络库,开发自Http Server、RPC框架和分布式系统等,是游戏服务器...
三个点:数据架构与算法,设计模式,工程管理 二:高性能网络设计专栏 技术点:tcp服务器如何升级https服务器,epoll的实现,reactor的原理与实现,百万并发,websocket协议,Redis,memcached。nginx网络组件.UDP可靠传输,QUIC,kcp.posixAPI网络协议栈 三:基础组件实现专栏 ...
1.1 网络设计模式 - B/S - C/S - IP和端口 - OSI/ISO 网络分层模型 2. 协议格式 3. socket编程 3.1 字节序 - 接口转换函数 3.2 IP地址转换 3.3 sockaddr数据结构 3.4 套接字函数 4. TCP通信流程 tcp 服务器server通信操作流程: tcp 客户端client通信操作流程: ...
初始设计目标:Unix操作系统最初的设计目标是作为电话网络的控制系统,而不是作为服务器操作系统。因此,Unix内核和操作系统的设计主要关注用户和任务的控制,而没有专门考虑高性能数据处理。这导致了在处理大规模并发连接时性能瓶颈。 多核处理器:现代处理器通常具有多个核心,而传统的操作系统代码使用多线程或多任务来提高...
https://github.com/iqiyi/libfiber )为例,讲解网络协程的设计原理、编程实践、性能优化等方面内容。 一、概述 早年间, 支持多个用户并发访问的服务应用,往往采用多进程方式,即针对每一个 TCP 网络连接创建一个服务进程。在 2000 年左右,比较流行使用 CGI 方式编写 Web 服务,当时人们用的比较多的 Web 服务器是基...
2.高性能网络设计 3.基础组件设计 4.中间件开发 5.开源框架 6.云原生 三、技术视频 众所周知,c/c++开发是一个庞大的技术体系,没有一套大一统的技术流程,而且方向众多。系统学习起来比较麻烦。这里就针对于c/c++后端开发方向,给大家整理了九大技术模块,46篇系统性的文章以及30个视频技术讲解,帮助大家梳理c/c++后...