08 2008存档
php中的"!="和“!==”有啥区别?看个例子就知道了:
$a=0;
var_dump($a!=false); //result: bool(false)
var_dump($a!==false); //result: bool(true)
"!=="要求被比较的变量是严格的bool类型,而"!="没有这个要求,"0"它也认为是false
$a=0;
var_dump($a!=false); //result: bool(false)
var_dump($a!==false); //result: bool(true)
"!=="要求被比较的变量是严格的bool类型,而"!="没有这个要求,"0"它也认为是false
还是上次的php性能优化。
在拿掉了错误lock的 cache之后,性能有所回升但还是不能完全满意,于是继续插桩子找瓶颈。发现分词功能偏慢,做成c++写的服务;发现计算编辑距离偏慢,也做成服务供 php调用,反正yahoo的proxyio好使,不用白不用。都改完了发现效果并不明显,由于是计算大量词的编辑距离,所以即使加快了一对词的计算速 度,但词多了一样快不起来。唉,找瓶颈、再各个击破的方法看来也不是那么好使。
最后看到计算编辑距离后有个过滤,咦,先过滤,剩下的少量词再算编辑距离不就快了吗?实行之,哐当,apache的response time跌回到100毫秒。
再小打小闹的语句优化都不如程序结构或算法优化带来的效果大啊。
在拿掉了错误lock的 cache之后,性能有所回升但还是不能完全满意,于是继续插桩子找瓶颈。发现分词功能偏慢,做成c++写的服务;发现计算编辑距离偏慢,也做成服务供 php调用,反正yahoo的proxyio好使,不用白不用。都改完了发现效果并不明显,由于是计算大量词的编辑距离,所以即使加快了一对词的计算速 度,但词多了一样快不起来。唉,找瓶颈、再各个击破的方法看来也不是那么好使。
最后看到计算编辑距离后有个过滤,咦,先过滤,剩下的少量词再算编辑距离不就快了吗?实行之,哐当,apache的response time跌回到100毫秒。
再小打小闹的语句优化都不如程序结构或算法优化带来的效果大啊。
上周去奥体中心看了女子手球半决赛,总算是看了08奥运的一场比赛。
坐地铁10号线到北土城路,上到地面,跟着人流走进临时安检中心,所谓安检中心,由好几个蓝白相间的大型帐篷组成,人流被分散以加快流通速度,不断有广播提 醒大家不要带火柴、打火机、长伞等物品,检查项目和机场类似,就是x光机查包和身上的金属探测。上了8号线地铁,第一站就到奥体中心,出来往南走五分钟就 看到了鸟巢和水立方。
鸟巢上的火炬
老外在广场上录节目,就有国人上去拍照....哭笑不得
进到国家体育馆,有志愿者帮组指路,很方便,食品、水售价都很公道,服务也不错,买水的时候还看到了挪威的啦啦队——都是古代维京人的打扮:大辫子、牛角帽,很特别很可爱。
看这白色大辫子,维京味多浓
牛角帽
第一场是韩国对挪威,挪威在最后一秒攻球入门,胜。第二场是匈牙利对俄罗斯,俄罗斯的24号极为凶猛,射门频频得分,我脑子里联想泛滥,居然想起了米-24....唉,军事爱好者 -_-b 不过看来24对俄罗斯人是个凶狠的数字。
倒地扣球
射门!
挥舞国旗的俄罗斯啦啦队
散场已经九点半,走了一个小时才到最近的公交站,途中路过地铁口,那个人多啊,忍不住拍一张:
地铁口的古屋造型还挺别致,看着像古代街市
坐地铁10号线到北土城路,上到地面,跟着人流走进临时安检中心,所谓安检中心,由好几个蓝白相间的大型帐篷组成,人流被分散以加快流通速度,不断有广播提 醒大家不要带火柴、打火机、长伞等物品,检查项目和机场类似,就是x光机查包和身上的金属探测。上了8号线地铁,第一站就到奥体中心,出来往南走五分钟就 看到了鸟巢和水立方。
进到国家体育馆,有志愿者帮组指路,很方便,食品、水售价都很公道,服务也不错,买水的时候还看到了挪威的啦啦队——都是古代维京人的打扮:大辫子、牛角帽,很特别很可爱。
第一场是韩国对挪威,挪威在最后一秒攻球入门,胜。第二场是匈牙利对俄罗斯,俄罗斯的24号极为凶猛,射门频频得分,我脑子里联想泛滥,居然想起了米-24....唉,军事爱好者 -_-b 不过看来24对俄罗斯人是个凶狠的数字。
散场已经九点半,走了一个小时才到最近的公交站,途中路过地铁口,那个人多啊,忍不住拍一张:
继2s25之后,又发现一款小巧玲珑的俄制自行火炮——2s9,下图是昨天刚结束的2008莫斯科武器展上的2s9自行迫榴炮,崭新的。
2s9在1981年就装配部队了,比2s25早多了,它采用2A60式120毫米线瞠迫击炮身管,这门炮可是伏尔加格勒车辆厂造的精品,既可以像迫击炮那样大仰角射击,又能像榴弹炮那样实施间接瞄准射击,还可以像反坦克火炮那样对装甲目标进行直瞄射击(我的天,买一送三啊),一炮多用,简直是攻防兼备的多面手。
关键中的关键是:它很小巧,看着挺可爱。
2s9在1981年就装配部队了,比2s25早多了,它采用2A60式120毫米线瞠迫击炮身管,这门炮可是伏尔加格勒车辆厂造的精品,既可以像迫击炮那样大仰角射击,又能像榴弹炮那样实施间接瞄准射击,还可以像反坦克火炮那样对装甲目标进行直瞄射击(我的天,买一送三啊),一炮多用,简直是攻防兼备的多面手。
关键中的关键是:它很小巧,看着挺可爱。
上图是前苏联安东诺夫设计局的安-12运输机,上世纪50年代投产,70年代成为苏军运输力量的主力,后慢慢被伊尔-76取代,曾出口很多国家,其中在中国的改进型即“运8”。下图是前苏联米里设计局的米-26直升机,上世纪80年代投产,今年参加了唐家河抢险,其硕大的外形和巨大的吊载能力给人留下了深刻印象。
故意把它们俩儿合列出来,有没有觉得两者的机身很像?不仅机身像,它们的载重量也都是20吨。其实两者是有渊源的,这里特别推荐一篇文章,很长见识,也很有启发。
周末去了趟圆明园,正赶上荷花节,还挺漂亮。
可爱的睡莲
也去看了最近新闻上说的新开放的“九州景区”,感觉很普通,有几片绿草地,几个回廊桥,很多所谓的景观就剩一些残破的大石块,唉,可恨那八国联军啊。
也去看了最近新闻上说的新开放的“九州景区”,感觉很普通,有几片绿草地,几个回廊桥,很多所谓的景观就剩一些残破的大石块,唉,可恨那八国联军啊。
服务器上php服务变慢,这几天就忙着优化性能,费了好大的劲。
记得有本书上说:在做性能优化是,程序员通常都会猜错性能瓶 颈的位置——所以千万不要猜,要用性能剖析(profile)工具。这话实在是至理明言!这次性能优化我就猜错了瓶颈,还好醒悟的快,但要命的是php没 有性能剖析工具,只好在程序里到处插桩子,进行“手工剖析”,终于发现瓶颈在cache上。说来好笑,cache本来是提高查找速度的,怎么变成瓶颈了? 主要是因为这个cache支持多进程是通过锁,每次访问cache时都要先锁再访问,如果有新数据,把数据放入cache,然后解锁退出,这对于采用多进 程模式的apache-php就是要了命。去掉cache,速度快了很多,至少原来的访问超时错误没有了。
唉,不支持多进程无锁访问的cache,千万不能用到php里啊。
记得有本书上说:在做性能优化是,程序员通常都会猜错性能瓶 颈的位置——所以千万不要猜,要用性能剖析(profile)工具。这话实在是至理明言!这次性能优化我就猜错了瓶颈,还好醒悟的快,但要命的是php没 有性能剖析工具,只好在程序里到处插桩子,进行“手工剖析”,终于发现瓶颈在cache上。说来好笑,cache本来是提高查找速度的,怎么变成瓶颈了? 主要是因为这个cache支持多进程是通过锁,每次访问cache时都要先锁再访问,如果有新数据,把数据放入cache,然后解锁退出,这对于采用多进 程模式的apache-php就是要了命。去掉cache,速度快了很多,至少原来的访问超时错误没有了。
唉,不支持多进程无锁访问的cache,千万不能用到php里啊。