Archive for 十月, 2007
Centos+dual core的性能问题
一台Centos5的主机,做编译的时候发现速度非常慢,修改各项参数也无济于事。vmstat是正常,分析下来最可能的原因就是CPU了。
该主机的CPU是双核的PD2.66,用的是一块华硕的VIA芯片主板。出问题的时候给我的感觉就是像笔记本开启省电模式一样。
demsg查看启动信息,找到了可疑的纪录:
Losing some ticks… checking if CPU frequency changed.
google了一下:
This seems to be common with dual core chips, and poor acpi
implementations for cpu throttling. Change the clock source by
changing your kernel boot options to clock=pmtmr or clock=pit
由于系统的ACPi提供了错误的信息导致cpu开启了自动降频之类的问题。修改grub的配置文件,估计八成跟这高不成低不就的VIA板子有关。
vi /boot/grub/grub.conf
找到类似于 kernel /vmlinuz-2.6.18-8.1.14.el5 ro root=LABEL=/ 的一行,在末尾添加clock=pmtmr,问题解决。
根据以往惯例,估计同样的FC和REDAHT AS系列也会有类似的问题,可以同样解决。
apache设置问题引发的Ajax故障
前阵日子遇到了一件郁闷的问题——一个网页,采用Ajax技术动态更新一个Frame,任何代码都没有问题,可就是在我自己的机器上测试就会出现IE无法显示的问题,然FireFox却没有任何问题。
首先,考虑到可能是IE的安全设置问题,将测试地址列入IE的“安全区域”,无果。
查看了几个网站上的资料,据说IE的安全机制决定了它不会显示512B以下的网页云云。把框架中的网页填补到了2K,无果。
怀疑自己的IE可能是由于插件的问题无法访问,换了崭新的一台系统,无果。
万般无奈之中,考虑到可能是HTTP-header的问题,找了个工具抓了头下来,恍然大悟——其中有一句“Content-Type text/html; charset=utf8” ,修改Apache设置中的DefaultCharset选项,将UTF8修改为UTF-8,一个减号的差别,错误解决!
IE也是蛮奇怪的,对于html格式上的容错性比较不错(至少支持不在W3C标准之内的n多设定
),可对于HTTP传输上的容错性,真是天知道
JS的IDE——Aptana
一直苦于开发JavaScript的时候没有合适的调试器,开发起来非常麻烦,在网上搜索了半天,找到了aptana项目 (似乎读作:“阿婆她呢”
)。
正如以往Litrin的惯例,这个工具也是开源的。随软件附带了一系列的JS CSS框架也相当不错。不过事实上,整个aptana其实就是一个Eclipse的插件版本,继承了Eclipse的优点,aptana也是跨平台的。
aptana其中有个FireFox的debug插件功能非常强大,可惜的是目前aptana的版本还很低,这也意味着bug非常多——不支持中文的UTF-8就是一个非常大的bug。
有需要的朋友可以下一个看看。
再谈PHP
说起来用PHP做程序开发已经将近7年多了,从php3一直到php5,开发工具也从记事本一直到了Zend Stdio。php的优点自然不必说,随便哪个PHP技术论坛上一抓一把,可这么多项目做完了,总感觉上缺点什么。我不是“种族主义者”,只是谈一下作为开发人员或者项目管理人员最渴望PHP的功能。
内置函数不统一,PHP的内置函数命名可谓是乱得可以了,大写的、小写的、驼峰的、并列的、AtoB的、下划的……几乎每种命名方式都能在php的内置函数中找到,够得上一个“函数命名方式博览会”的了 。很不利于开发人员记忆。
环境差异,看似PHP只存在版本差异,其实如果你在IDC那边的虚拟主机上部署PHP你就会发现,开不开Safe_mode就够弄半天的了,还有引用的这个库那个库的,如果是pear这样的库也就罢了,大不了自己重新include;拿GD库来讲,根本没有办法通过其他方法来代用。如果同时又有幸使用了Zend加密过的php代码……
模板问题,现在用的最多的就属smarty了,可smarty的功能实在太强,里面的循环、判断和自动转换格式的部分,真不知道是给美工做还是给开发人员做更合适。如果不用模板,直接把php嵌入html中,同样的问题。
数据库访问,有很多数据库的访问接口,但始终无法摆脱fetch的命运,不论怎么封包,复杂的SQL语句总归要成了程序开发中的重点和系统运行中的瓶颈。
对象访问,php的对象在不断的增强,但还是有待增强。虽然不会把php当作java来用。
层次,企业环境开发,最希望的是能把系统访问和应用访问分开,界面和程序分开(即MVC),这一点PHP需要很大的工作量才可以做到,于是大多开发人员不得不选择了不分开。所有的代码集中到了一起,逻辑上很乱,也没有办法实现代码重用。
调试环境,相比java的调试环境,Zend Studio还远远不够。
框架,市面上流行的几个PHP框架,例如ZF,无一例外的都是模仿了Struct或者.net,没有真正表现出PHP自己的特色,这似乎成了一个怪圈——如果别人用框架觉得好就可能从php转到struct或者.net,用得不好反而会得出php很烂的结论,从而转到其他语言。
总之,上面的牢骚只是希望php有所改善,并非是挑php的骨头。
分辨率限制
新买了显示器,ViewSonic优派的VA1703WB,看型号就知道这是一款宽屏的显示器,最佳分辨率为1440×900。回头看看我的网站——乖乖,这么多空白,也怪我当初设计的时候只考虑到所谓的“流体布局”,所有的表格宽度都用了相对宽度。修改CSS吧。
body的属性增加了text-align:center background-color:#ccc
添加了body table{width:1009px}
强行锁住了页面宽度,OK了就是您现在看到的样子。


最近评论