您正在查看 "Php" 分类下的文章 2010-07-01 12:44 刚测试了一组数据和PDO有关,一组是使用了PDO的情况,一组是使用PHP的MySQL扩展的情况,按照连接、插入、查询三个方式进行的对比测试结果如下:
说明
time 发生时间
class 类别
case 测试用例名称
step 用例被执行次数
runtime 总的测试时间
memory(peak) 消耗的最大内存
连接
time:2010-07-01 10:53:40, class:pdo, case:connect, step:100000, runtime:21.52, memory(peak): 262144
time:2010-07-01 10:54:08, class:mysql, case:connect, step:100000, runtime:4.42, memory |
2009-04-12 13:32 以往写代码,总是不推荐include很多文件,老的思想是,那样会耗费大量的IO,尤其以前写的是面向虚机的产品,不能奢望客户都有好的设备,并都正确安装了APC、X-Cache或是eAccelerator这样的PHP脚本缓存。所以在IO上总是很抠门,能节省一个就算一个。
也许通过下文的介绍,你突然放松了。但意识这种东西既是你革新的阻力,也是你尽量不要丢的东西。
另外实验都做的比较细,我还是喜欢用数据来证实传说。
试验需要三个脚本:
|
2009-03-22 16:38 在多个WEB前端的网站中,时间往往是幽灵杀手。例如缓存不更新、失效、访问API超时等,有时候是因为时间不统一导致的。另外对于缓存,也经常由于互斥或同步没有做好,暴出许多灵异事件。只有极少的时候缓存读写会出现错误,而我们又束手无策。
如果靠时间同步服务,去同步各Web服务器的时间,一个是这种方法有点笨拙,二是这种同步仍然不能完美解决问题。
在多线程程序中,我们使用互斥量和临界段进行同步操作。实际上相当于在各线程工作的时候,使用了一个内核级的变量,来充当红绿灯的功能。大家都以这个第三方的变 |
2009-03-20 15:36 我们一般只注意到memcached的数据结构是key,value,今天看memcached源代码的时候,盯上了flags,没看明白。后来问了一下同事,说PHP当中使用flags标记,标识memcached数据是否需要经过压缩处理。
例如:
bool Memcache::add ( string $key, mixed $var [, int $flag [, int $expire]] )
- flag
-
Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).
看了一下m |
2008-08-16 15:15 ftp_connect("127.0.0.1", 21);
ftp_connect()实际上有三个参数,第三个参数被缺省。一般函数的缺省都是0或者NULL。
ftp_connect()函数中的第三个参数timeout的缺省值是90秒。因此请大家多多注意。
另外需要注意FTP中的ftp_pasv()选项,应该在ftp_connect() -> ftp_login() 之后设置一下,往往FTP帐户密码都对,但就是传不过去文件卡在ftp_put()函数上,都是因为FTP的主被动模式有区别。
ftp_rename() 函数实际上会覆盖已存在的文件,也需要多多注意。
另外最好封装一下mkdi |
2008-08-06 11:55 #!/usr/local/bin/php
<?php
$hostname = "root";
$username = "langwan";
$password = "testdb";
$connect = mysql_connect($hostname, $username, $password);
$result = mysql_query("SHOW PROCESSLIST", $connect);
while ($proc = mysql_fetch_assoc($result)) {
if ($proc["State"] == "Locked") {
@mysql_query("KILL " . $ |
2008-08-06 11:50 #!/usr/local/bin/php
<?php
$dbhost = '127.0.0.1';
$dbuser = 'root';
$dbpass = 'langwan';
$dbname = 'testdb';
$logpath = '/var/logs/db';
$link = mysql_connect($dbhost, $dbuser, $dbpass, $dbname);
$info = explode(' ', mysql_stat($link));
$data = array();
foreach($info as $row) {
$t = explode(': ', $row);
$data[] = trim($t[1]); |
2008-06-05 15:15 依据$rootpath的定义可快速搜索到系统中的简体中文,如果系统中某
些部分不参与搜索可以通过$filter定制过滤器。如果想排除注释的干
扰,可以使用$remark忽略注释内的中文。
如果使用shell模式运行本程序,会收到更好的效果。处理完毕后会根
据$logname的设置输出中文所在文件名称,中文所在行的位置。
作者 浪湾<langwan |
2008-05-26 21:44 2008-01-13 12:40 <?php
echo 'PHP VERSION:'.PHP_VERSION;
echo '<br />';
$a = 'abc';
$example = 1;
if($example == 1) {
unset($a[0]); // Fatal error: Cannot unset string offsets in
} elseif($example == 2) {
$b = $a[0][0]; // Fatal error: Cannot unset string offsets in
}
?>
这个故障偶尔程序员会犯,尤其是 例子2这种无效赋值。 |
2007-11-05 19:31 /*
* 统计字符串长度
*@author langwan<langwanluo@gmail.com>
*@param $str 被统计字符串
*/
function sstrlen($str) {
global $charset;
$n = 0; $p = 0; $c = '';
$len = strlen($str);
if($charset == 'utf-8') {
for($i = 0; $i < $len; $i++) {
$c = ord($str{ |
2007-11-04 10:32 for ( $i = 1; $i < 100; $i++ ) {
$str = str_repeat('01234567', $i);
$a = memory_get_usage();
unset($str);
$b = memory_get_usage();
echo "\n<br />".$i.': '.( |
2007-09-24 16:31 md5()函数的执行时间会随着字符串的长度增加而直线变慢。
我们产生size长的随机字符串,并做md5()函数运算,代码如下:
function random($length, $numeric = 0) {
PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
if($numeric) {
$hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
} else {
$hash = '';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; |
2007-07-08 12:55 1.1 Apache设置
1.1.1 全局设置
- Listen
Apache监听IP及端口设置,默认是80,设置例如:Listen 12.34.56.78:80 监听此IP及端口Listen 80 监听80端口。
- LoadModule
加载Apache内置的及扩展模块,例如:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module "c:/Program Files/php/php5apache2.dll"
- AddType
将某扩展名当成新的文件格式处理,例如: AddType application/x-htt |
2007-06-28 22:23 描述:
CR_SERVER_LOST 当写服务器时,客户没有出错,但是它没有得到对问题的一个完整的答案(或任何答案)。
三个层面上解决这个问题:
1. 代码层面,你需要在自己的PHP数据库连接处增加大致如下代码。
if( in_array(mysql_errno(), array(2006, 2013) ) {
mysql_close();
mysql_connect(...);
|
| | |