先说listen的参数backlog,同步系统中分别设置为5,512,1024的跑分情况 跑分工具apache的ab,参数为:ab -n50000 -c300 backlog=5跑分结果 Requests per second:    7545.87 [#/sec] (mean) backlog=512跑分结果 Requests per second:    16833.85 [#/sec] (mean) backlog=1024跑分结果 Requests per second:    1714…
实验环境:Ubuntu16.04,内核版本:4.4.0-59-generic   根据man listen得到的解释如下:   backlog参数定义了存放pending状态(挂起.护着搁置)的连接的队列的最大长度:如果在队列满的时候,一个连接请求到达,客户端可能会收到一个错误:ECONREFUSED.   然后man listen的下面有一个小提示:   现在backlog这个参数指示的是存放已经建立连接(established)并等待被accept的sockets的队列的长度. 没有完成的s…
1.协程 #协程 又称微线程 是一种用户的轻量级线程 程序级别代码控制 就不用加机器 #不同函数 = 不同任务 A函数切到B函数没有进行cpu级别的切换,而是程序级别的切换就是协程 yelied #单线程下多个任务流用协程,比如打电话可以切换,nginx #爽妹给你打电话的时候,她不说话,刘征电话过来时候你可以切过去,这时候要是爽妹说话,就会bibi响 ''' 协程的好处: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 "原子操作(atomic operation)是不需要synchr…
同步与异步的性能区别  1. #coding:utf-8 import gevent def task(pid): """ Some non-deterministic task """ gevent.sleep(0.5) #起到切换的作用 print('Task %s done' % pid) def synchronous(): for i in range(1,10): task(i) def asynchronous(): threads…
程序猿修仙之路--数据结构之你是否真的懂数组?   数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少.数据结构与算法相辅相成,亦是阴阳互补之法. 开篇 说道数组,几乎每个IT江湖人士都不陌生,甚至过半人还会很自信觉的它很简单. 的确,在菜菜所知道的编程语言中几乎都会有数组的影子.不过它不仅仅是一种基础的数据类型,更是一种基础的数据结构.如果你觉的对数组足够了解,那能不能回答一下: 数组的本质定义?…
简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP socket发送大数据包时,接收端和发送端数据不一致 服务端接收Receive不完全 服务器端: port为监听端口 byte[] bs 一般声明一个较大的数组接收 int ilen 为接收到的数据包长度,根据它从byte[] bs里截取就好 IPEndPoint localEndPoint = n…
转载自:http://www.cnblogs.com/asilas/archive/2006/01/05/311309.html .NET平台下几种SOCKET模型的简要性能供参考 这个内容在cnblogs中也讨论过很多次了,这两天大概看了一些资料,看到一些简单的性能指标拿出来和大家讨论一下. Socket + Threads/ThreadPool 大概性能:小于1500个连接 实现:Accept一个Socket,就交给一个线程去管理,比较笨,但也比较有效,因为是同步方式,控制起来很方便.高级点…
线程数:500个   每个线程日志输出次数: 500次 log4j2其实有两个输出异步日志的方式:AsyncLogger和AsyncAppend 他两的区别在于: AsyncLogger使用的是无锁高性能队列disruptor,底层是依赖数组实现的RingBuffer和CAS改变下标实现,并且不会出现伪共享缓存,关于disruptor的详情可以看下面这篇 https://ifeve.com/disruptor/     此网站貌似有点不稳定:) AsyncAppend使用的则是ArrayBloc…
IList和DataSet性能差别         分类:             NHibernate/Spring/NetTiers/Castle/Ibatis             C#              2008-09-20 01:28     764人阅读     评论(0)     收藏     举报     dataset数据库 一.DataSet被定义为"内存中的数据库",可想而知它是一个重量级的对象,也就是说,创建一个DataSet对象的系统开销是比较大的.…
AJAX中的请求方式以及同步异步的区别请求方式,分为GET与POST: GET 最为常见的HTTP请求,普通上网浏览页面就是GET.GET方式的参数请求直接跟在URL后,以问号开始.(JS中用window.location.search获得).参数可以用encodeURIComponent进行编码,使用方式: var EnParam = encodeURIComponent(param); URL只支持大约2K的长度,即2048字符数:使用GET进行AJAX请求时候会缓存导致出现的页面不是正确的…