会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
李道兵的墙内博客
博客园
首页
新随笔
联系
管理
订阅
随笔分类 -
读书笔记
[读书笔记] go 语言如何处理系统调用
摘要:上一篇博客主要是讲如何避免在高并发下使用太多系统线程或进程,但如果仅仅是减少了线程数,CPU利用率本身没有上来,那么系统的容量很低,那么仍然无法达到高并发的目的。通常情况下,我们会设置线程数等于CPU数,充分利用CPU就等价于如何让线程一直工作,避免把时间浪费在等待系统调用返回上,从而提高系统容量。很多 linux 平台下的异步框架都基于 epoll 来设计,但 epoll 本身只支持 fd, 也就是说能很好的支持文件IO以及socket, 但对于其他系统调用则无法处理,在调用时仍然会造成堵塞,比如 creat, unlink等等。在大部分情况下,能对文件IO和socket进行异步处理已经能满
阅读全文
posted @
2011-10-07 22:07
LI Daobing
阅读(4651)
评论(2)
推荐(0)
[读书笔记] goroutine 与 erlang process 的区别
摘要:在传统的服务器编程模型中,我们会为每一个请求分配一个线程,请求结束后终止该线程,或者把线程放回线程池。 Java 的 Servlet 就属于这种模型的典型。对于 PHP, Ruby, Python 这些语言,要么对于多线程支持不好,要么在多线程下表现不好,通常我们会为每个请求分配一个进程,但整体模型都差不多。通常我们的请求并不是一直在消耗CPU, 一个请求的大部分时间都花在等待磁盘,数据库,cache,其他服务返回上面,或者说等待一个事件发生(比如 web 版的 IM, 通常会建立一个 HTTP 请求,等待其他人给你发消息)。 所以对于一个8核的 CPU,支撑100个并发,CPU消耗并不大,负
阅读全文
posted @
2011-10-07 00:31
LI Daobing
阅读(2627)
评论(0)
推荐(0)
Ruby Cheat Sheet#1 反射
摘要:irb(main):001:0 a = Object.new = # irb(main):002:0 a.object_id #获取对象ID = 70350817702340 irb(main):003:0 a.class #获取对象类型 = Object irb(main):004:0 Integer.superclass #获取父类 = Numeric irb(main):006:0 Numeric.superclass #... = Object irb(main):007:0 Object.superclass #Object父类为 nil = nil irb(main):011:0 Integer.ancestors #获取类的父类及 include 的类 = [Integer, Precision, Numeric, Comparable, Object, Kernel] irb(main):013:0 Integer.class #类的类型是 Class = Cla
阅读全文
posted @
2010-11-01 23:18
LI Daobing
阅读(1352)
评论(0)
推荐(1)
[读书笔记] LVM (更新)
摘要:原始版本:http://hi.baidu.com/lidaobing/blog/item/9509a344ed416a87b3b7dc2a.htmlupdated: ext2resize 不再可用,换到 resize2fs它是什么?LVM(逻辑卷管理)能将多个储存设备(包括分区,RAID设备等)合并成为一个新的储存设备。在这设备上可以建立多个分区。他支持动态调整分区大小,动态添加或删除底层设备。安...
阅读全文
posted @
2010-10-21 22:13
LI Daobing
阅读(1048)
评论(0)
推荐(0)
[读书笔记] Rails 中的 Rack 中间件
摘要:0. 背景知识0.1 Rack 协议Rack 起源于 Python 的WSGI 协议, 是一个语言相关的 HTTP 服务端接口 (CGI, FCGI, SCGI 是语言无关的接口, WSGI, Rack, Servlet 则属于语言相关的接口), 该协议下一个简单的应用形式如下# config.ruclass Helloworlddef call(env) [200, {'Content-Type...
阅读全文
posted @
2010-10-19 22:47
LI Daobing
阅读(3539)
评论(2)
推荐(1)
OAuth: How and Why?
摘要:
阅读全文
posted @
2010-08-05 23:56
LI Daobing
阅读(602)
评论(0)
推荐(1)
[读书笔记] 从 TDD 到 BDD
摘要:最近在学 ruby, 也用了 rspec, 传统的 xUnit 是 TDD 指导思想下的产物, 而 rspec 则算是 BDD (Behavior Driven Development) 影响下的产品。TDD 和 BDD 区别究竟何在呢?首先是思路上的区别, 传统的 TDD 关注的是接口是否被正确地实现了, 所以通常每个接口有一个对应的单元测试函数。而 BDD 通常以类为单位, 关注一个类是否实现...
阅读全文
posted @
2010-07-18 00:40
LI Daobing
阅读(5008)
评论(1)
推荐(2)
[读书笔记] EJB 3 in Action: Spring Bean 与 EJB Session Bean 的异同
摘要:用了一段时间 Spring, 看了一下 Guice, 现在开始看 EJB 了。书选的是EJB 3 in Action, 现在只看到第三章。测试服务器用的是 JBOSS 5.1, 用 MyEclipse 开发。Spring Container 里面的对象功能类似于 EJB 3 中的无状态会话Bean(SLSB), 或者更类似于 EJB 3.1 引入的 Singleton。尽管绝大部分业务逻辑都能用 ...
阅读全文
posted @
2010-03-05 20:56
LI Daobing
阅读(765)
评论(0)
推荐(0)
公告