易截截图软件、单文件、免安装、纯绿色、仅160KB

细细品味PHP程序的算法

http://prato.bokele.com/?ArticleID=15302
    在一般的应用中,PHP的程序员会比较少的注意到php程序的细微算法对性能影响的问题,但在处理一些比较占用资源的东西的时候,适当调整算法,会让程序的性能整倍的提高。
    这几天,我在研究分词的算法,如果不预先载入词典的话,那种运算速度简直惨不忍睹,因此我考虑了预先载入词典在一个数组中的做法,我手上有一个十多万词汇的词典,开始的时候,用这样的方式载入:
$fp = fopen(dirname(__FILE__)."/mydic.txt","r");
while($wd = fgets($fp,1024)){
 $ws = split("`",trim($wd));
 $m_dic[$ws[0]][$ws[1]] = $ws[2];
}
fclose($fp);
这样一测试,发现分析时候慢吞吞的,后来通过检测执行时间才发现,原来载入词典居然用了 1.5 秒多,也难怪!
数据格式为:
0列:前两词的拼音,1列为:词,2列为:词的长度
如:
al`奥林匹克运动会`14
al`阿拉伯的劳伦斯`14
as`埃塞俄比亚高原`14
wp`旺铺租售`8  
wq`网球王子`8  
wq`外企服务`8
我试一下不作任运作算,只读一遍数据文件:
$fp = fopen(dirname(__FILE__)."/mydic.txt","r");
while($wd = fgets($fp,24)){
 //$ws = split("`",trim($wd));
 //$m_dic[$ws[0]][$ws[1]] = $ws[2];
}
fclose($fp);
经测试只用了:0.18 秒,显然真正占用时间的代码是:
$ws = split("`",trim($wd));
$m_dic[$ws[0]][$ws[1]] = $ws[2];
这两行代码,我把它换成这个样子:
$fp = fopen(dirname(__FILE__)."/mydic.txt","r");
while($wd = fgets($fp,24)){
 $WordEnd = strpos($wd,"`",3);
 $m_dic[$wd[0].$wd[1]][substr($wd,3,$WordEnd-3)] = ($WordEnd-3)*2;
}
fclose($fp);
这样测试就只有 0.7 秒多,然后把词典中词的长度去除,变为:
$fp = fopen(dirname(__FILE__)."/mydic.txt","r");
while($wd = fgets($fp,18)){
 $WordEnd = strlen($wd)-2;// 2是" "的长度
 $m_dic[$wd[0].$wd[1]][substr($wd,3,$WordEnd-3)] = ($WordEnd-3)*2;
}
fclose($fp);
又快了 0.07 秒左右,速度在 0.63 秒中徘徊,这和原来的 1.5 是多大的差别呀!


相关文档:

php 学习

<?php
    $txt = 'Hello world';
    echo $txt;
?>
<br/>
字符串连接(.)
<br/>
echo 'Hello world'. "" . '1234'  输出: 
<?php
    $txt1 = 'Hello world';
    $txt2 = '1234';
    ......

PHP 装上APC之后的问题:

原贴:http://www.162cm.com/archives/433.html


Blog
联系我
about
PHP 装上APC之后的问题:
APC由于能够缓存文件上传进度,因此算是解决了一直以来困挠PHP开发人员的一个老大难,所以我也特别喜欢他了。如果对php实现文件上传进度条有困 难,可以看这里

不过今天发现,APC宣称的加速功能,其实也是一种缓存 ......

Installing PHP APC on GNU/Linux Centos 5

原贴:http://2bits.com/articles/installing-php-apc-gnulinux-centos-5.html
Published Mon, 2008/03/24 - 13:49, Updated Wed, 2009/07/15 - 23:40
Complex PHP applications, such as Drupal, can gain a lot of performance benefits from running a PHP op-code cache/accelerators
.
APC,
Alternate ......

blog源码整理:php+mysql博客程序25种

Blog系统作为大家最常接触的互联网东东,在站长群体中几乎人手一博,从知名门户的博客频道,到网络营销专家博客,网民对博客的关注度在不断提高并深化。目前网上免费的blog系统太杂,在此整理PHP版的Blog介绍如下:
1、wordpress:http://www.wordpress.org 功能也很全面,应该是支持blog的首选。它有最强的模版功能,已经 ......

PHP备份数据库原理和方法

php100学习
源码:http://bbs.php100.com/read-htm-tid-11052.html
1、PHP备份数据库的原理
2、PHP中mysql相关函数
mysql_list_tables() 表查询函数,类似mysql_query() 函数
mysql_fetch_field() 字段信息函数,返回句柄
Name 字段的名称
Table 字段所属数据表的名称
Type 字段的类型
max_length 字段的最大长度 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号