标记说明:转载原创

November 27, 2006

PHP 5.2.0 有点不可理喻  

代码 Coding

最近两周快被搞疯了,没想到一个简单分析日志的小脚本被搞的这么复杂。

脚本是这样,每天从各个 web 服务器上抓取 apache log,约 8 - 10G,然后分析,并生成海量的 html(20K+ 个),约 3G+(求和需要很长时间,很少去算),数量上讲有点变态,但对于我这个需求来讲是合适的,我只需要保存大约 10 天的数量,再久的就可以打包了,打包后才 60MB/天。

在我自己机器上,一切都调配好了,于是放到了一台 FreeBSD 的机器上,发现随着文件数量急剧增加,创建新文件的速度直线下降,怀疑是 ext3 过于智能的减少文件碎片的算法所导致的,不过没时间研究问题所在了。直接重装成 win XP + NTFS,莫名其妙的问题又出现了——我那个脚本分析 60MB 数据需要约 14 秒,但是在新机器上怎么跑都是 39 秒,这意味着我原本计划每天 8 个小时能跑完的脚本可能 24 小时都跑不完。于是我毫无头绪的开始检查分区规划是否有问题、簇的大小、IDE 数据线是不是 ATA100 的、除了 Intel INF 还得装点什么驱动之类各种各样能想得到的点,但都不是

网管给我了一个叫 HD Tune 的软件让我确认,这台新机器装的跟我自己的机器一样健康,磁盘读写的测试结果几乎一模一样。最后我能找的到的区别是,我自己机器上的 PHP 是 5.1.6,而新机器我装的是 5.2.0

我把 PHP 目录换掉,php5ts.dll 覆盖掉,于是,新机器上跑起来也是 14 秒了。

我一直以为 fgets 是最底层的操作,比方说 PHP 里写一个文件应该在 shell 下用管道符生成一个文件的速度应该是非常接近的,瓶颈应该在磁盘 IO 上,但是我错了

我那个脚本主要就是这么个基本的循环读取每行数据的

<?PHP
$fileHandle 
fopen($sFileName"r")
while (!
feof($fileHandle)) {
    
$sLine fgets($fileHandle);
    ...
?>

从现在的表面现象上看,相同读日志脚本在 5.1.6 跟 5.2.0 上效率差了两倍半,原因么……

A. 最近的 php 很多 fix,以至于连 fgets 这么古老的函数都受影响

B. 跟 fgets 没关系,我读取数据后将各种信息放到一个超大数组里,由于更 oo 的新版在某些内存分配、指针或者什么 ooxx 的不为人知的改动导致对这个大数组的操作变的缓慢(更不太可能,内存再慢也差不出 25 秒啊)

没有时间测试/分析具体原因了,只要这个脚本正常运行了就好(巧合编程?随鸭去吧)以及之前所说的怀疑 ext3 格式无法胜任这种写文件的方式,也只是猜测

任务缓存早已溢出,赶紧下一任务吧

Posted by Platinum at 02:52 PM | No more content | Comments (1)

November 16, 2006

谁说的跟说什么同样重要  

铂 Platinum

如果你有数量庞大、内容正常但是文件名已经面目全非的文件时候会怎么样?我可能会就当那些文件已经被删了

我甚至觉得,ID3v1、ID3v2 metadata 是让 mp3 格式无比成功的重要原因之一

以前关注消息,但现在更关心的是来源。我不承认有所有人都支持的善恶行为的标准。每个人都为自己的利益角度去表达观点,揣摩说话者的目的、环境、说话者的情绪,及林林总总,有时候还是值得品味的。

某个事件,各方都会怎么说?为什么?

哪怕是那些虚伪、恶毒的语言,也在包含着人类无尽的智慧

Posted by Platinum at 12:41 PM | No more content | Comments (0)

November 15, 2006

一点回忆  

铂 Platinum

早上收到马秀俊发的一张照片,很是怀念,不过鸭的摄像头实在是不清楚,唯一能看清的是“F-BASIC”几个字,右边写的应该是“资料册”,在下面是“丹东五中 郑凯”(其实小学就有了,应该是重新换的皮或者是重抄的吧)

F-BASIC ——这是个好东西,代码的存储空间是 4K(也有在高级点的机器上是 8K),我因此沉迷于那台 金字塔 9388 学习机(马秀俊后来买的 9488),好像后来的小霸王上改叫 G-BASIC。F 是 family,G 是 game。我引以为傲的是,小学的时候把一本关于 F-BASIC 的大部头快给翻烂了,对于那时的我确实是大部头,32开或者略小,3cm 左右厚。

孤僻性格的养成、逻辑思维的养成,都从那个时候开始,这一生的走向也就被改变了。

马秀俊是我的小学同学,也是这辈子影响我的人之一。他领我去的市少年宫,第一次见识到 Apple ][

发现论起资格,总是晚上一步,电脑入门时没摸过中华学习机、初上网时没注册上网易的个人主页,遗憾

照片里这个小册子,是马秀俊借去后忘换了,一直就放在那保存了下来。这对于我来说是无法做到的,生于黑龙江,十来岁时全家搬到辽宁丹东,隔八年后第一次到了北京,之后混乱的各地方呆了两年,目前在北京连续住了三年半了。没有多少以前的东西被保存下来,也没有什么同学、朋友能保持长时间来往。对于我来说,几乎所有人都是萍水相逢

Posted by Platinum at 10:49 AM | No more content | Comments (1)

November 2, 2006

选择  

铂 Platinum

“Chosen”这个词已经被《Matrix》用滥了,所以没多大兴趣想说。看到一篇关于选择这个话题的,才有了动力把之前看的一段电视剧的台词贴出来,顺道说一些引申想法。

字幕文件名是“[罪案终结.第二季].The.Closer.S02E09.Heroic.Measures.HDTV.XviD-l”,有看美剧的顺着去 emule 就是了。

我连对话都懒得格式化了,大致描述一下情景:在审讯间里,总共有三个人在说话,第一个说话的是医生 A,第三句里的“你”指的是医生 B,质问医生 A 的是 Johnson 警长。医生 B 由于疏忽(可能是连续工作过多疲劳)导致了一起医疗事故,让一个男孩 nicholas langner 严重致残,医生 A 的补救措施是……干脆让那个孩子死去,以掩盖医生 B 的错误(应该也有司机干过类似的事情,撞上以后再多踩脚油门什么的)。

这都是他的错
我根本没有想到
你竟然没有发现出血
知道么,那个孩子上手术台的时候
已经开始缺氧了
我花了三分钟发现你的错误
然后只剩下 45 秒钟来修复

然后呢?

那个男孩的大脑失去血液供应
已经快 4 分钟了
他醒来之后可能就瘫痪了
也许失明了
或者在接下来的一生中
都要与智力障碍相伴
那还是最好的估计

你当时并不知道
好了,好了
看看我是不是搞明白了,医生
你是说你本可以修好动脉

不过清楚这将再花去一分钟时间

你选择让 nicholas langner 死去
而不是最起码的活着?

不不,不是最起码的活着

他的身体已经遭受无法挽回的损伤

不过也有可能他会没事
在你让他醒过来之前
你根本不知道

我的双手在那个男孩的肚子里
只待了数秒钟
而这几秒钟却要做出重要的抉择
是死去,还是严重残疾
更不用提把你的粗心大意揭露出来

我从来没有请求你
为我隐藏什么

那只是因为你没有这个胆量

我所做出的选择,Johnson 小姐
是完全正确的

杀死 nicholas langner?

让他死去
是的,我让他死了,Johnson 小姐
因为这就是我的工作

是么?

我在早上 10 点钟之前所做出的生死抉择
比大多数人一辈子中的还要多
在极少数情况下,我救不了某个人
我没有时间去流泪,去悲叹
去指责
因为在隔壁房间里
还有其他的病人也正命悬一线
我在 nicholas langner 身上
做出了正确的选择
唯一合理的选择
而且再有机会,我还会这么做

如果你如此肯定
自己所做的是正确的选择

那为什么还要指责 nicky 的母亲
要为她儿子的死负责?
你还知道他的病历上并没有记录显示
监护人假装或引发出来的疾病

以前也见过一个类似的问题,不过类似寓言故事的形式,最后是一个反问,大致是“残忍?你觉得与其让他死去,还是这样苟延残喘更残忍?”上面的医生 A 我本来是支持他的观点的,但是大众应该不会被接受,编剧是反对也好、迫于观众的道德压力也好,总之是安排医生 A 被愤怒的、失去孩子的母亲乱枪打死了。

所有这些选择、比较、博弈,最后都是单位换算混乱的不等式。所谓人性,就是禁止在做四则运算的时候把生命也换算进去。

不,这不是抱怨,只是了解和归纳,好比就算你不喜欢汽油燃烧的气味,也应该搞明白汽油到底是什么东西一样

有些人鼓动和吹捧宗教的理由之一就是,让你相信还有你所未知的神秘存在,好约束你老实点。我也支持这点,知道的越多,会让你越周密和冷静,也就是所谓的残忍。

刚上网不长时间的时候,曾经一条新闻比较摧残我幼小的心灵……某动物园老虎突然发狂,咬死饲养员,拖行尸体很久。当时持枪的警卫之类的目击全过程,没敢开枪制止,记者问及,答,老虎太贵,打不起。那是突然之间就明白了,哪有生命无价,都是屁话,就像说吾皇万岁一样,千万别认真。那只老虎,只怕饲养员跟警卫两家干一辈子也赔不起,所以只能眼睁睁看着饲养员去死,如果无聊好事的认真计算下去,把各参数想周全了,没准能给出 那饲养员的命 == 24.3万元人民币 == 122.1 吨大米 == 0.37 辆 xx型 红旗轿车 这类连等式来,这就是典型而标准的没人性算法了

Posted by Platinum at 05:30 PM | No more content | Comments (0)

    November 2006    
1234
567891011
12131415161718
19202122232425
2627282930

[ Show the Last 10 Archives ]


按分类归档


按月归档

[ More Archives ... ]



链接

其他

Search in Soulogic.com
Google

访客来源列表


用户名
密码