- 博客(15)
- 资源 (28)
- 收藏
- 关注
原创 线程上下文切换
在上下文切换过程中,CPU会停止处理当前运行的程序,并保存当前程序运行的具体位置以便之后继续运行。从这个角度来看,上下文切换有点像我们同时阅读几本书,在来回切换书本的同时我们需要记住每本书当前读到的页码。在程序中,上下文切换过程中的“页码”信息是保存在进程控制块(PCB)中的。PCB还经常被称作“切换桢”(switchframe)。“页码”信息会一直保存到CPU的内存中,直到他们被再次使用。
2014-06-17 13:46:19 2235
原创 线程和进程对比
在许多系统中,创建一个线程较创建一个进程要快10~100倍。 若多个线程都是CPU密集型的,那么并不能获得性能上的增强,如果存在大量的计算与大量的I/O处理,拥有多个线程允许这些活动彼此重叠进行,从而加快应用程序执行的速度。 在多CPU系统中,多线程是有益的,在这样的操作系统中,真正的并行有了实现的可能。我自己的理解: 进程越多,如果成千上万级别,CPU将
2014-06-17 13:28:11 740
原创 Node.js 与Nginx比较
Node.js 与Nginx之间也可以稍作比较。通过我们的线下测试,发现Nginx的性能比Node.js的HTTP模块要好很多。但Nginx考量的是面向客户端, 后端业务方面依然是受具体业务影响。而Node.js则可以利用异步I/O来实现业务并行,以提升效率。从这点看,Nginx没有Node.js灵活。此 外,Node.js后来的发展方向不再单独是一个Web服务器,而是一个面向网络的平台,它甚至可
2014-06-17 09:39:28 6555
原创 IO开销简单展示
IO开销 花费cpu时钟周期cpu cache L1 3cpu cache L2 14 ram 250 disk 41000000 net 240000000结论: disk是net 6倍
2014-06-17 09:30:30 2102
原创 HttpAsyncClient 介绍
HttpAsyncClient 介绍 HttpAsyncClient 是基于httpcore NIO 和httpclient基础上做的进一步封装,主要利用异步回调方式,适用于高性能需求的场景下.当我们发送一个http请求后,当前线程会立刻返回,并执行完后续工作。此时和服务端只有connection进行连接,没有线程等待。当收到响应后,HttpAsyncClient将回调注册的方法。从
2014-06-16 14:23:22 3445
转载 io总结
原先对于IO模型的认识总是很模糊,前段时间系统的学习了一下,分享出来,希望对看到的人有帮助。UNIX网络编程中,将IO模型划分为5种:(1)阻塞IO (2)非阻塞IO (3)信号驱动IO (4)IO复用 (5)异步IO1、IO操作的2个步骤:以上5种IO操作都分成了两个步骤:发起IO请求和实际IO操作。(1)发起IO请求:IO请求一般需要请求特殊资源(如磁盘、RAM、文件),当
2014-06-16 11:59:11 632
转载 tornado性能测试
测试环境: 服务器配置: 4 x Intel(R) Xeon(R) CPU E5405 @ 2.00GHz, 4G内存, 操作系统: CentOS 5.3 x86_64nginx前端 + 4 tornado(0.2) web processtornado: http://www.tornadoweb.org (已被墙)测试场景: http get请求,服务器端直接返回"h
2014-06-14 17:02:08 2158
原创 tonado介绍
import tornado.ioloopimport tornado.webclass MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world")application = tornado.web.Application([ (r"/", MainHandler),])if __name__
2014-06-14 16:56:15 4350
原创 jvm笔记
root@mobile-site2:/data/logs/pay1.api.xxx.com# jmap -heap 8379Attaching to process ID 8379, please wait...Debugger attached successfully.Server compiler detected.JVM version is 23.7-b01usi
2014-06-13 09:29:12 725
转载 C3P0连接池详细配置
C3P0连接池详细配置 3 30 1000 false 属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试 使用。Default: null--> Test 保留,并在下次调用getConnection()的时候继续尝试获
2014-06-10 10:03:02 774
原创 LVS的三种工作模式 和10种调度算法
LVS的三种工作模式LVS-NAT:LVS-NAT方式的思路很简单,它利用调度服务器实施网络层数据欺骗,它把客户端发送到调度服务器的数据IP包的目标地址进行了替换。LVS-DR:这个方法的思路是实施数据链路层数据欺骗,修改网络帧数据的Mac地址。LVS-TUN:这个方法是为了突破LVS-DR同一网段内的限制所提出来的。它不做任何欺骗,而是光明正大的交流,在网络层进行了二次包
2014-06-06 16:26:34 1837
转载 comet
1.什么是COMET ? 查阅词典Comet中文是“彗星”的意思,起初我见到这个单词的时候,我就猜想优美名字背后到底是什么呢?他是一种WEB服务器推的应用技术(Server Push)。Server Push就如同它自己的名字一样,将更多华丽的web体验“推”进了我们的视野。有 一些观点 将Comet比作是 Ajax 的接班人,这个观点 我无法苟同,我认为Ajax 与Comet 并不存在
2014-06-06 09:29:22 658
原创 3种异步网络编程模型整理
1,select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024,不过可以通过修改宏定义甚至重新编译内核的方式提升这一限制。另外,select()所维护的存储大量文件描述符的数据结构,随着文件描述符数量的增大,其复制的开销也线性增长。同时,由于网络响应时间的延迟使得大量TCP连接处于非活跃状态,但调用select()会对所有socket进行一次线性
2014-06-06 09:20:38 1675
struts2.0中文帮助手册.chm
2010-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人