关于作者

姓名:

性别:男

出生日期:--

地区:

联系电话:

QQ:--

婚否:保密
用户名:覃健祥
笔名:覃健祥
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



为之付出过的网站

老师和同学

同事

正在创业的兄弟们

example.*.cn三兄弟

三人行,必有吾师

访问统计:
文章个数:249
评论个数:2019
留言条数:109




Powered by BlogDriver 2.1

覃健祥 | chin at blogchina

 

开始提供广告,收入将全部捐助张琳,如果有您需要的信息,请支持一下,谢谢。

文章

kiwiphp发布第一个版本
为鸟化蝶进程不被我频繁更新kiwi打乱,我特意发布了kiwiphp的第一个版本: kiwiphp 0.1
在此下载:
svn://svn.kiwiphp.com/kiwiphp/branches/release-0.1

请化蝶的配置管理员晓东童鞋注意,改一下你的makelove——哦不好意思,是 Makefile——文件,从这个地址export

主干svn://svn.kiwiphp.com/kiwiphp/trunk将是我不定时提交的一些乱七八糟的更改,如果化蝶项目发现bug,我会修改后合并到release-0.1分支,也还是从那里同步。

还在线的童鞋欢庆一下kiwiphp第一个版本的诞生吧,干!

- 作者: 覃健祥 2008年10月31日, 星期五 23:13  回复(2) |  引用(0) 加入博采

开源搜索引擎Hyper Estraier性能小测&缺点总结
注:这是8月13日给工程技术部同事发的一个邮件,因为我要清理服务器硬盘了,找个地方把搜索引擎测试结果记录下来。

Hi,all

在这炎热枯燥的下午,中国军团尚未有新的冠军产生,我来给大家介绍一下Hyper Estraier这个开源搜索引擎吧。

Hyper Estraier是一个由日本人用C写的搜索引擎,底层存储采用了作者另外一个 开源项目QDBM。
在功能特性上,Hyper Estraier是比较接近iSearch的,支持Attribue Search,N- gram,P2P(不是下片的P2P啊,就是可以有很多节点,节点之间可以通信),甚至 支持正则。。。BT的说。

想知道详细情况呢,可以造访HE的项目主页:http: //hyperestraier.sourceforge.net/,徐仁禄(北京雅虎,资讯团队)同学对这个 东东有更多研究,看这里:http: //www.162cm.com/archives/tag/hyperestraier,我最早是听南瓜子(杭州口碑, 本搜团队)介绍的,不过不晓得南瓜子同学的blog地址,本搜的兄弟可以补上

六月份的时候我用larbin抓取了数百万网页,build了索引,做了一下性能测试, 测试数据简单总结如下:
一、html页面数共74,329M,约74G
[chin@lily ~]$ tail -n 3 nohup.out
96      save/d00330
106     save/d00814
74329   save/

二、build完之后,索引文件约19G,加上其他数据一共约26G
1096    ./_attr
19044   ./_idx
5727    ./_text
2       ./_kwd

三、build非常耗时,这点数据量,估计花了72小时才build完,我没准确计时,但 感觉脚本运行了三天才跑完,服务器load average 2左右,不build索引的时候 load average在0.05左右,我用的是这个shell:
for ((DIR=001;DIR<1000;DIR++))
do
   echo "Now gathering html in d00"$DIR
   rm tmp_index -rf
   find "/usr/local/larbin/save/d00"$DIR -type f | estcmd gather -fh -cl tmp_index - > /dev/null
   estcmd merge chn_html tmp_index > /dev/null
done
红色部分是关键,不知道“find命令查找html文件”是不是瓶颈,用he索引php和 mysql的html手册还是挺快的。

四、查询速度是亚秒级的,似乎有缓存,排序慢,计算相似度(similar page)很 慢,猜测是build索引的时候干的活儿少,所以查询的时候很多东西要临时计算
[chin@lily he]$ estcmd search -max 1 chn_html "yahoo ncp"
--------[38B113D56972756D]--------
VERSION 1.0
NODE    local
HIT     6
HINT#1  yahoo ncp       6
TIME    0.663100
DOCNUM 2514538
WORDNUM 17904280
VIEW    ID
本次搜索关键词是“yahoo ncp”,在251万个文档中命中6个,耗时663毫秒

[chin@lily he]$ estcmd search -max 1 chn_html "yahoo"
--------[6C8156340E89C849]--------
VERSION 1.0
NODE    local
HIT     59707
HINT#1  yahoo   59707
TIME    0.051943
DOCNUM  2514538
WORDNUM 17904280
VIEW    ID
[chin@lily he]$ estcmd search -max 1 chn_html "ncp"
--------[5B1ED19D1C5AB56C]--------
VERSION 1.0
NODE    local
HIT     1362
HINT#1  ncp     1362
TIME    0.003320
DOCNUM  2514538
WORDNUM 17904280
VIEW    ID
第二次搜yahoo或ncp就快很多了,因此我猜是有缓存的

HE的缺点:
1.没有像样的社区。
作者很猛很持久,搞了一系列开源项目,但似乎没有人跟他一起开发。有人贡献其 他语言的API,比如PHP的api就是。

2.文档简单但不详尽。
看得出来,这个日本哥们的英文也不咋地,对我们这种非英语母语的人来说是个好 事,文档很容易阅读,不过实施的时候有写细节需要连猜带蒙。文档里甚至有些错误。

3.某些功能特性缺失,比如stop word,同根词,group by(看http: //fuwu.cn.yahoo.com,随便搜个关键词,它会告诉你各个分类下有多少满足条件 的结果)。也没有分词,不过分词可以独立出来,也容易改他的源代码重编译。

4.代码结构一般。
C代码,流程控制比较扁平(充斥大量if,else),感觉没什么封装,也谈不上什么 设计模式。坏处是代码复用不够,会有些冗余,给hack带来一些困难。好处是比较 容易看明白,无需借助SourceInsight之类的东东。

另外,我在这里搭了个PHP,MySQL手册的搜索:http://www.example.com.cn/ 可以去体验一下。

徐仁禄的回复:
根据我阅读部分代码的结果,并不推荐大家用它做实际开发
小改一下还行,但是其结构实在太.....适于一两个高手埋头猛搞,不适合拿到一个公司、团队做为项目进行
应叶琦的补充:
如果是采用在内存中构建“搜索词 文档ID列表”,然后把用户输入的词分开去一一对应,最后再根据文档ID(也可能是偏移量)去大的索引文件里面去查找,性能应该比这个至少快1个数量级(而且是不用任何缓存机制的前提下)。
不知道Hyper Estraier是怎么实现的,但是从结果上来看性能不好。

- 作者: 覃健祥 2008年08月20日, 星期三 14:39  回复(3) |  引用(0) 加入博采

广岛之恋
转眼间又有一个多月没写了,总有个旋律在我心底盘旋,可惜周围的人都被我唱烦了...

你早就该拒绝我
不该放任我的追求
给我渴望的故事
留下丢不掉的名字
时间难倒回空间易破碎
二十四小时的爱情
是我一生难忘的美丽回忆

越过道德的边境
我们走过爱的禁区
享受幸福的错觉
误解了快乐的意义
是谁太勇敢说喜欢离别
只要今天不要明天眼睁睁看着
爱从指缝中溜走还说再见

不够时间好好来爱你
早该停止风流的游戏
愿被你抛弃就算了解而分离
不愿爱的没有答案结局
不够时间好好来恨你
终于明白恨人不容易
爱恨消失前用手温暖我的脸
为我证明我曾真心爱过你
爱过你爱过你爱过你爱过你
越过道德的边境
我们走过爱的禁区
享受幸福的错觉
误解了快乐的意义
是谁太勇敢说喜欢离别
只要今天不要明天眼睁睁看着
爱从指缝中溜走还说再见

不够时间好好来爱你
早该停止风流的游戏
愿被你抛弃就算了解而分离
不愿爱的没有答案结局
不够时间好好来恨你
终于明白恨人不容易
爱恨消失前用手温暖我的脸
为我证明我曾真心爱过你
爱过你爱过你爱过你爱过你

来杭州整整四个月的时候,忽然觉得好孤单,好慌乱,还好骑自行车环西湖拯救了我。

- 作者: 覃健祥 2008年07月21日, 星期一 21:37  回复(7) |  引用(0) 加入博采

终于把GD的JPEG支持搞定了
PHP 5.2.2自己从源代码编译的,没有任何扩展
扩展编译成so之后在php.ini加载
gd, libpng, libjpeg都是yum安装的

可是phpinfo()里面显示GD模块没有JPEG支持,这个问题一年前就有了,我反复执行
/usr/local/php5/bin/phpize
./configure --with-php-config=/usr/local/php5/bin/php-config
make
make install
重新编译gd模块,未果,就搁下了

直到今天,忽然心血来潮,和gd较上劲了,仔细看config的输出,发现libpng,libjpeg都没找到(我不知道为啥编译完了png是支持的,而jpeg不支持),可以用--with-jpeg-dir=<DIR>来指定jpeg的位置

先yum list libjpeg, libpng, zlib及他们的-devel包一番,发现都装了
然后gdlib-config --features发现输出“GD_XPM GD_JPEG GD_FONTCONFIG GD_FREETYPE GD_PNG GD_GIF”,说明系统的gd是对的,支持JPEG的,那么问题肯定出在编译php-gd的过程中了

于是试了一下--with-jpeg=/usr/local --with-png=/usr/local --with-zlib-dir=/usr/local(http://www.boutell.com/gd/faq.html这里建议的),configure出错,不能进行下去,--with-jpeg-dir=/usr(我自己瞎想的),编译倒是成功了,phpinfo显示还是不支持jpeg

又看了一下gdlib-config --all,输出
GD library  2.0.33
includedir: /usr/include
cflags:     -I/usr/include
ldflags:    -L/usr/lib64
libs:       -lXpm -lX11 -ljpeg -lfontconfig -lfreetype -lpng12 -lz -lm
libdir:     /usr/lib64
features:   GD_XPM GD_JPEG GD_FONTCONFIG GD_FREETYPE GD_PNG GD_GIF

终于明白了,我装的64位系统,很多库在lib64下面,似乎大彻大悟,命令改为:
./configure --with-php-config=/usr/ocal/php5/bin/php-config --with-jpeg-dir=/usr/lib64
然后make,make install,成功。

- 作者: 覃健祥 2008年06月12日, 星期四 00:40  回复(7) |  引用(0) 加入博采

被救者不感恩还是央视太矫情太虚伪
<央视编导手记:农民雪灾中救助44乘客无人感恩> 真相:

http://view.news.qq.com/zt/2008/hubeiganen/index.htm

我的立场:
鉴于央视的一贯作风,我倾向于认为,44人集体不知感恩基本不太可能,央视太矫情太虚伪可信度比较高。

参考链接:
44被救者不知感恩真相 腾讯专题 天涯讨论 Google搜索结果
刘德华得罪央视 气哭《同一首歌》导演孟欣 网易报道

- 作者: 覃健祥 2008年04月3日, 星期四 17:52  回复(1) |  引用(0) 加入博采

iphone破解,恢复和常用软件

昨天一不小心把iphone弄到白苹果状态了,又刷了几遍,留此备忘。

1. iphone恢复至出厂状态(刚买还没破解的兄弟略过此步)

a) 用数据线将iphone连接到电脑上

b) Home键和Power / Sleep键使Iphone进入恢复模式(详细操作:先按iphoneHome键(iphone上就这么一个大的醒目的圆按钮),按住不放,然后按住右上角的Power / Sleep键,两键按住不放,约5-10秒会出现一个白色苹果Logo,松开Power / Sleep键,几秒后就进入恢复模式了)

c) Itunes会自动检测到处于恢复模式的iphone,并自动运行(检测不到则手工开启itunes),跳出对话框说检测到一个处于恢复模式的iphone,点确定。在itunes界面按住shift点击“恢复”,会跳出一个文件选择对话框,选择一个事先下载好的firmware文件,点打开,恢复就开始了。为什么要shift+恢复呢,直接点恢复,itunes会从apple官方网站下载最新的firmware装上,有两个坏处:一是最新版本有可能会锁住你的iphone,给破解带来麻烦,二是下载的很慢,160M的固件,还是用迅雷之类的来下载比较好。

2. 破解iphone(刚买还没破解的兄弟从这里开始看)

a) Iphone开机(网上很多教程说要进入恢复模式,打开itunes,根据我的实践,这两部是不需要的),用数据线连接到电脑上。

b) 在电脑上运行ziphone gui(我用的2.2版本,其他版本可能有差异,昨晚用2.5c破解的,破完之后sim卡无信号,可能是个案,没有统计意义 ——今天查了一下资料,ziphone 2.5c会将baseband升级成用Anysim 1.4破过的4.04_05_G版本,这个版本的确没有手机和wifi信号,国内外用户都有反映,非个案),勾选左侧的jailbreak, activate, unlock,然后点击startZiphone会自动搞定一切(包括把处于正常开机模式的iphone弄到恢复模式——这时候itunes跳出来说要恢复的话,别理他,直接关掉它),大约三分钟后就自动破解完重启了。

做完这两步就可以自己换sim卡,安装软件了。其实破解很简单,呵呵。

关于破解工具的选择,ziphone提供了降级bootloader的选项,可以把4.6的bootloader降级为3.9的,但3.9的bootloader就再也不能升级了,目前只有4.6的bootloader被发现了漏洞,所以可以灵活的升降级。因此,不推荐使用ziphone的"降级bootloader"功能,不推荐使用ziphone 2.4和2.5(do it all功能会自动降级!昨晚我差一点点了这个,后来发现有个advanced feature,可以选择不降级)。

关于4.6 bootloader有什么好处,可以参考这篇文章:http://www.weiphone.com/thread-69365-1-1.html

3. 共享电脑的无线(适合电脑有无线网卡,但没有无线路由的)

a) 在电脑上建立一个点对点无线网络

进入控制面板 -> 网络连接,右击无线连接,选择“属性”打开无线网卡的属性页,点击“无线网络配置”的选项卡,点“添加”出来添加无线网络的对话框。网络名随便写(一会儿在iphone上找到了你自己认得就行,别写中文),数据加密写禁用,勾选“这事一个计算机到计算机网络;没有使用无线访问点”。点确定。

b) 把能上网的线路共享出来

一般这个能上网的线路叫“本地连接”(如果是你办公室局域网或者通过ADSL上网),右击之,选择“属性”打开本地连接属性对话框,点击“高级”选项卡,勾选“允许其他网络用户通过此计算机的Internet连接来连接”,取消“允许其他网络用户控制或者禁用共享的Internet连接”前的勾(不取消也无所谓),点击确定。

这一步操作会将上一步设置的无线网络连接ip地址设为192.168.0.1。并激活了一个DHCP。所以,请不要把这两步的顺序弄反了。

c) iphone去连电脑的点点无线网

打开iphone,选择Setting -> Wifi 找到这个点对点网络,连接之。有时候会提示“unable to join”,别理他,只要iphone屏幕左上角无线信号的图标出来了就行。

d) iphone上网,用safari打开www.yahoo.com看看啦!

4. 安装软件

installer在线安装,将能体会到BSD ports之爽,不用你选择安装位置,不用点一堆的oknext

先安装BSD Subsystem和OpenSSH

然后通过电脑用 putty ssh到iphone上去执行(ip在Setting -> Wifi里面,默认账户:root alpine):

mv /Applications /private/var

ln -s /private/var/Applications /

说明:以上两步是把Applications放到disk2(挂载点/private/var)上去,并在disk1建立一个软连接,以后装软件都装到/private/var/Applications去了,再也不会提示空间不足了。disk1(挂载点/)一共才300M,剩余空间只有三四十M,装软件很容易就占满了。也可以用同样的方法把fonts等耗费空间较多的文件夹移到disk2去。

然后执行:

chmod +s /Applications/Installer.app/Installer

说明:Installer在安装某些软件的时候是需要root权限(chmod +s就是赋予setuid以root身份执行权限的)的,移动Applications文件夹之前是正常的,cp走的时候,s不会带走,xwr都正常,所以需要执行这一步,不然安装软件的时候会遇到Main script execution failed

软件列表

#source:

http://i.unlock.no

http://app.weiphone.com/installer

Community Source

http://lumaqq.linuxsir.org/update/repository.plist

不要使用tgbus.com出的那个source,就是iphonebus.com/apps/rep.xml,好多软件都安装不上。而且他们家的source在all package里面都能找到。

#系统基础件

ziphone ibrickr fix(解决ziphone破解之后ibus连不上的bug)

bsd subsystem

region patch(装完这个之后就可以去Setting -> General -> International中把Region Format设为China了, 1.1.3不装这个就没China的选项,只有HK)

#系统工具

OpenSSH

Term-vt100

Services

Sysinfo

Search

Converter

VoiceDial

Apollo

LumaQQ

MACalc

iLM(Google Maps离线版)


iPhysics

iRadio

Light Off

#weiphone.com

wefit

WeLLK

WeSpot

#游戏模拟器

gpSPhone

NES

psx4all


FAQ(我只测试过1.1.3)



Term-vt100密码错误

http://forums.macrumors.com/showthread.php?t=422369 12楼

putty 连上去,执行:

mkdir -p /usr/local/arm-apple-darwin/lib
ln -sf /usr/lib/libgcc_s.1.dylib /usr/local/arm-apple-darwin/lib/libgcc_s.1.dylib
chmod +s /Applications/Term-vt100.app/Term-vt100


Apollo连不上MSN登录服务器

http://www.everythingicafe.com/forum/third-party-applications/apollo-fix-for-1-1-3-a-22734.html 1楼

putty连上去,或者用Term-vt100,执行

vim /etc/hosts

在文件末尾加入:

64.12.161.185 login.oscar.aol.com
64.12.161.185 login.messaging.aol.com
65.54.239.140 messenger.hotmail.com
65.54.239.140 dp.msnmessenger.akadns.net
65.54.179.216 nexus.passport.com
65.54.179.216 nexus.passport.com.nsatc.net
65.54.183.203 login.live.com
65.54.183.203 login.live.com.nsatc.net
65.55.128.48 spaces.live.com
209.85.163.125 talk.google.com
209.85.163.125 talk.l.google.com

保存,退出。

或者用ibus下载下来改好了传上去。


- 作者: 覃健祥 2008年03月10日, 星期一 14:42  回复(3) |  引用(0) 加入博采

iphone
1月30日,无意中发现有个老大在美国,两天后回国,托他带个iphone,网上铺天盖地的言论说1.1.3版本破解无望,入手须慎重,1.1.2需要卡贴才能破解,而且基本买不到了。

我在“道高一尺,魔高一丈”的理论指引下,坚信1.1.3很快就可以破解的。于是让老大带了。

2月14日,休了个工作以来最长的“寒假”去杭州参加年会,碰到老大,问之,答曰我的iphone已在北京。16日晚回到北京,本来想去公司拿的,但是等王志勇同学托运的行李等了近一个小时,又是三人拼车回市区,于是暂且作罢,度过了一个忐忑不安(1.1.3到底能不能破解啊,我会不会买回一块高科技砖头-_-!)的夜晚,17日一大早骑车冲到公司,取到iphone开始破解,过程非常顺利。

开盒,取出底座,数据线,iphone,接上电脑
打开前一天晚上就准备好的ziphone,勾选jailbreak, activate, unlock,点start
转身去洗手间
三分钟后返回,iphone已经破解好了!

不会换sim卡,一边上网搜索,一边嘀咕:苹果咋连个说明书都不给。网上搜索的情况显示很多跟我这样的小白不知道怎么换sim卡。找同事要了一根回形针,顺利顶开卡托,取出AT & T的卡(上面有个3G的字样哦),换上我的,拨我的座机,正常。

最后,在我要把iphone装回盒子带回家的时候,发现有一本很小很小的手册-_-!!!

回家用wifi,折腾了数小时,能进入路由器管理界面,就是不能解析域名,最后按照某篇帖子指示把iphone的dns手工指定为路由器的ip 192.168.0.1,成功(注:就成功了这么一次,后来重刷之后,再也不能通过这样的方式上无线了)。

ziphone破解之后ibus和ibrickr不认,还说我的iphone是未破解的,按照iphonebus上的说明装了个补丁,搞定。

后来的事情就比较乏味了,遇到了这么几个麻烦:
1.中文输入法安装了无法调出来,发短信界面没有小地球,后来在Setting里面更改了语言设置就ok了。
2.无法上wifi,公司的wifi密码我不知道,不好意思去麻烦IT的兄弟,用我自己的笔记本做了个点对点的wifi,有线网络设置为共享,搞定。家里的无线路由也最终被我搞定,手工在路由器设置界面指定dns,设为北京网通的dns(路由器自动获取到的第一个dns地址居然是广东的,晕)
3.很多很多软件装不上,要么是下载包失败,要么是不兼容1.1.3内核,比如iradio,term-vt100下载失败,openssh,wellk(连连看)装了也不能运行。



- 作者: 覃健祥 2008年02月25日, 星期一 17:38  回复(9) |  引用(0) 加入博采

How to make decision 如何做决定

如何做决定,这是一个会伴随我们一生的问题。

我经常在需要作出重要决定的时候碰到棘手的问题,最后做出并非最佳甚至很坏的决定。我唯一可供分享的经验是:在情绪不好的时候一定不要做任何决定。

我找到了关于如何做决定的小文章,中英文各一篇,留此存照。

===============此处开始转载==============

要做出一个切合实际或有效的决定,

通常依赖个体对自己及环境的正确了解。
  
在婴儿时期,

我们无法真正控制或掌握自己及环境的一切,

我们所能做的是不舒服时哭叫,

让父母来猜到底怎么回事。

儿童时期,

我们对自己及世界有了比以前多一些的了解,

就开始运用两个新策略来做决定--当我们对自己状况不了解,

而对环境状况了解,则容易受他人意见左右,而倾向做出「依赖型的决定」(dependent decision),

例如,对自己的兴趣不了解,在选择主修科系时,

就依赖父母的意见做为决定;

如果我们知道自己要什么,

而较不了解情境或环境状况的话,我们也许会做「直觉型的决定」(intuitive decision),

例如「我喜欢冰淇淋,不喜欢青菜。」

当我们逐渐长大,我们保存上述这两种型态的决定方式,

并增加一种决定策略--「计划型的决定」(pacnful decision)。

这种计划性的决定,是考虑个人及环境双方的情境才做的较有效的决定。

当我们运用这种策略时,

我们会衡量情境的内在与外在需求情形,及其正、反面情况。

如果时间容许,我们会收集更多的数据,并考虑各种可能的结果;

如此,所做的决定较符合我们及环境的需求。

来源:http://www.tkgsh.tn.edu.tw/counsell/%E8%B3%87%E6%96%99%E7%B5%84/%E6%9C%88%E6%9C%83/%E5%AD%B8%E7%94%9F%E7%89%88%E8%BC%94%E5%B0%8E%E9%80%9A%E8%A8%8A/149/%E5%AD%B8%E7%BF%92%E5%A6%82%E4%BD%95%E5%81%9A%E6%B1%BA%E5%AE%9A.htm

================另外一个转载=============

Introduction

Making decisions can be intimidating and time-consuming. And while there's no easy way to just make them, the following tips can help you in that direction.

Instructions

Difficulty: Moderate

Things You'll Need

  • Paper And Pencils

Steps

1

Step One

Mark out the parameters of the decision clearly: What choices do you have? Are there more than two?
2

Step Two

Gather as much information as you can about each alternative - talk to the appropriate people, solicit advice from friends and family, and research by reading books and magazine or newspaper articles.
3

Step Tree

Get the experience that will help you make an informed decision. For example, if you're trying to decide whether to become a doctor or not, first volunteer at a hospital or clinic.
4

Step Four

Jot down a list of pros and cons for each decision. Prioritize which considerations are very important to you, and which are less so.
5

Step Five

Recognize that there are no right reasons for making a particular decision. The fact that a particular path is important to you, regardless of what others think, legitimizes it.
6

Step Six

Think honestly about any fears, motives or biases guiding your thinking. Recognize them for what they are.
7

Step Seven

Brainstorm alternatives. Can you synthesize the available alternatives into a compromise that maximizes the pros and minimizes the cons? Look for ways to have your cake and eat it too.
8

Step Eight

Put an end to collecting information about your decision. Avoid thinking that with just a little more time and information, you'll be able to make the one perfect decision. Remember that no decision is perfect and that all choices are made in a condition of some uncertainty.
9

Step Nine

Recognize that you might learn things in hindsight that would have changed your decision had you known about them earlier. This thought is normal, and should not be allowed to stall your decision making.
10

Step Ten

Make the decision.

Tips & Warnings

  • Critically evaluate your decision from time to time - if you don't like how things are progressing, try something else.
  • If all else fails, try going with your gut feeling.
  • Keep one eye on the clock; avoid endless delays in making a decision for fear that you don't know enough or will make the wrong choice.

来源:http://www.ehow.com/how_3838_make-decisions.html

- 作者: 覃健祥 2007年12月25日, 星期二 21:04  回复(1) |  引用(0) 加入博采

kiwiphp开源了

其实kiwiphp早就提供匿名svn checkout了,不过一直没有文档,最近每写好一个class都要发邮件给大家说如何使用,手册越来越不成体系,遂萌发弄个wiki的念头。

昨晚努力了数小时,kiwiphp的wiki上线运行了:http://wiki.kiwiphp.com/

欢迎感兴趣的同好去看看:)

- 作者: 覃健祥 2007年12月18日, 星期二 16:30  回复(1) |  引用(0) 加入博采

重做的kiwiphp框架性能测试

上次PHP框架介绍techtalk中,我给大家做演示,连接一台远程的Linux Server,测试了一下kiwiphpkiwiphp是我自己写的一个小framework)性能,结果显示kiwiphp在执行一个简单的页面输出任务时,性能只有原生php3%,而并非我演示之前说的30%,这个是不正常的,由于时间关系,我没有当场解决这个问题。后来我在笔记本和yroot上分别测了一下,30%是相对比较可信的。

现将测试结果贴这里备忘:

测试方法1

php framework和原生php分别输出一个页面,该页面include一个公共头和一个公共尾

原生php代码参见附件

环境测试方法和结果:

nonmvc.txt的内容是100http://localhost/mvc_bench/nonmvc/index.php

mvc.txt的内容是100http://localhost/mvc_bench/mvc/index.php

http_load -parallel 10 -seconds 10 /home/jianxian/nonmvc.txt

11363 fetches, 10 max parallel, 1.52264e+06 bytes, in 10.0008 seconds

134 mean bytes/connection

1136.21 fetches/sec, 152252 bytes/sec

msecs/connect: 0.065158 mean, 12.248 max, 0.018 min

msecs/first-response: 4.99158 mean, 825.573 max, 0.733 min

HTTP response codes:

code 200 – 11363

http_load -parallel 10 -seconds 10 /home/jianxian/mvc.txt

3823 fetches, 10 max parallel, 512282 bytes, in 10.0013 seconds

134 mean bytes/connection

382.251 fetches/sec, 51221.7 bytes/sec

msecs/connect: 0.0706869 mean, 0.185 max, 0.018 min

msecs/first-response: 15.2609 mean, 867.053 max, 2.237 min

HTTP response codes:

code 200 – 3823

382.251 / 1136.21 = 33.64%

测试方法2

php framework和原生php分别输出一个字串:Hello world

font face="宋体">环境测试方法和结果:

nonmvc.txt的内容是100http://localhost/mvc_bench/hw/nonmvc/index.php

mvc.txt的内容是100http://localhost/mvc_bench/hw/mvc/index.php

http_load -parallel 10 -seconds 10 /home/jianxian/nonmvc.txt

11248 fetches, 10 max parallel, 1.50723e+06 bytes, in 10.0003 seconds

134 mean bytes/connection

1124.76 fetches/sec, 150718 bytes/sec

msecs/connect: 0.06526 mean, 4.462 max, 0.018 min

msecs/first-response: 4.60769 mean, 630.797 max, 0.763 min

HTTP response codes:

code 200 – 11248

http_load -parallel 10 -seconds 10 /home/jianxian/mvc.txt

4118 fetches, 10 max parallel, 477688 bytes, in 10.0002 seconds

116 mean bytes/connection

411.792 fetches/sec, 47767.9 bytes/sec

msecs/connect: 0.0731333 mean, 10.091 max, 0.018 min

msecs/first-response: 14.6304 mean, 828.407 max, 1.848 min

HTTP response codes:

  code 200 -- 4118

411.792 / 1124.76 = 36.61%  小幅性能增长是因为我在框架中去掉了3个自动载入文件

update:禁用apc后测试结果是:

http_load -parallel 10 -seconds 10 /home/jianxian/nonmvc.txt
8922 fetches, 10 max parallel, 1.19555e+06 bytes, in 10.0009 seconds
134 mean bytes/connection
892.121 fetches/sec, 119544 bytes/sec
msecs/connect: 0.0680688 mean, 1.713 max, 0.018 min
msecs/first-response: 5.8938 mean, 745.489 max, 0.931 min
HTTP response codes:
  code 200 -- 8922

http_load -parallel 10 -seconds 10 /home/jianxian/mvc.txt
1790 fetches, 10 max parallel, 207640 bytes, in 10.0027 seconds
116 mean bytes/connection
178.952 fetches/sec, 20758.5 bytes/sec
msecs/connect: 0.0744101 mean, 2.409 max, 0.019 min
msecs/first-response: 32.4393 mean, 1305.51 max, 5.265 min
HTTP response codes:
  code 200 -- 1790

kiwiphp的性能是原生php的20%

 

 

 

 

 

 

 

 

 

 

 

- 作者: 覃健祥 2007年12月1日, 星期六 14:44  回复(3) |  引用(0) 加入博采