从linux源码看socket的阻塞和非阻塞 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 大部分高性能网络框架采用的是非阻塞模式。笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non_block)的区别。 本文源码均来自 ...
分类:
系统相关 时间:
2020-06-04 13:42:55
阅读次数:
58
1. 概要 本文描述一个通过C++可变参数模板实现C++反射机制的方法。该方法非常实用,在Nebula高性能网络框架中大量应用,实现了非常强大的动态加载动态创建功能。Nebula框架在Github的仓库地址。 C++11的新特性--可变模版参数(variadic templates)是C++11新增 ...
分类:
编程语言 时间:
2019-01-17 21:22:06
阅读次数:
188
1.概要 本文描述一个通过C++可变参数模板实现C++反射机制的方法。该方法非常实用,在Nebula高性能网络框架中大量应用,实现了非常强大的动态加载动态创建功能。Nebula框架在coding.net的仓库地址。 C++11的新特性--可变模版参数(variadictemplates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示
分类:
编程语言 时间:
2018-07-14 19:29:07
阅读次数:
272
NIO闲聊
自从JAVA1.4推出NIO起,JAVA网络编程进入了一个全新的时代,传统网络IO(OIO)是傻等式的,一旦IO操作发起,那么用户线程就陷入很傻很天真的等待中,直到IO操作结束或者发生了断连,而NIO则要聪明许多是事件触发式的,只有当前有IO事件发生了,才会通知用户线程执行IO操作,当前操作结束之后不会阻塞等待可以执行其他的业务操作等待下一次事件,就好比上银行取钱,一种方式排队傻等直...
分类:
Web程序 时间:
2015-04-18 08:49:05
阅读次数:
458
Netmap to VALE
从高性能网络框架到高性能虚拟网络交换机
由于项目需要,我常常思考一个高性能的虚拟交换机应该怎么做。像我在前面也提到过,对于全虚拟化和半虚拟化,需要分配给虚拟机一个虚拟网络接口,这些就需要一个虚拟交换机(可以和hypervisor一同使用),将虚拟网络接口的数据包最终从物理接口转发出去。
来源项目netmap做了一个高性能网络框架,并且同样使用这个原理走完成了高性...
分类:
Web程序 时间:
2014-10-31 17:30:02
阅读次数:
600