• 关于 microtime 的搜索结果

问题

用了云服务器碰上非常诡异的问题!!!

ming_zm 2019-12-01 21:17:51 8081 浏览量 回答数 8

问题

求一个php生成 uniq id的方案

落地花开啦 2019-12-01 19:52:39 1373 浏览量 回答数 1

回答

1 $pref = microtime(ture) 返回当前时间的时间戳的浮点型值2 uniqid($pref,true) 以微秒计的当前时间 true:23个字符长度 false:13个字符长度3 uniqid(microtime(ture),true) 拼接连个字符串:当前时间的时间戳的浮点型值 + 以微秒计的当前时间5 再用md5加密拼接后的字符串6 最后加上$ext的文件后缀总体是为了防止文件上传后文件重名

小旋风柴进 2019-12-02 02:00:01 0 浏览量 回答数 0

新用户福利专场,云服务器ECS低至102元/年

新用户专场,1核2G 102元/年起,2核4G 699.8元/年起

回答

几乎没有200k随机记录的基准。与预期的一样,fetchAll方法更快,但需要更多的内存。 Result : fetchAll : 0.35965991020203s, 100249408b fetch : 0.39197015762329s, 440b 使用的基准代码: setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = 'SELECT * FROM test_table WHERE 1'; $stmt = $dbh->query($sql); $data = array(); $start_all = microtime(true); $data = $stmt->fetchAll(); $end_all = microtime(true); $stmt = $dbh->query($sql); $data = array(); $start_one = microtime(true); while($data = $stmt->fetch()){} $end_one = microtime(true); // Second benchmark : memory usage $stmt = $dbh->query($sql); $data = array(); $memory_start_all = memory_get_usage(); $data = $stmt->fetchAll(); $memory_end_all = memory_get_usage(); $stmt = $dbh->query($sql); $data = array(); $memory_end_one = 0; $memory_start_one = memory_get_usage(); while($data = $stmt->fetch()){ $memory_end_one = max($memory_end_one, memory_get_usage()); } echo 'Result : fetchAll : ' . ($end_all - $start_all) . 's, ' . ($memory_end_all - $memory_start_all) . 'b fetch : ' . ($end_one - $start_one) . 's, ' . ($memory_end_one - $memory_start_one) . 'b '; 分享来源:stack overflow

保持可爱mmm 2020-05-11 16:40:38 0 浏览量 回答数 0

回答

我将此代码用于“概要分析”(1000个实例,1000.000次读/写): function p($i) { echo ' '; print_r($i); echo ''; } $t0 = microtime(true); for ($i=0; $i<1000; $i++) { $z = array(); for ($j=0; $j<1000; $j++) { $z['aaa'] = 'aaa'; $z['bbb'] = 'bbb'; $z['ccc'] = $z['aaa'].$z['bbb']; } } echo ' arrays: '.(microtime(true) - $t0); p($z); $t0 = microtime(true); for ($i=0; $i<1000; $i++) { $z = (object) null; for ($j=0; $j<1000; $j++) { $z->aaa = 'aaa'; $z->bbb = 'bbb'; $z->ccc = $z->aaa.$z->bbb; } } echo ' obj: '.(microtime(true) - $t0); p($z); echo ' phpversion '.phpversion(); 它在托管这些东西的LINUX中输出: arrays: 1.1085488796234 Array ( [aaa] => aaa [bbb] => bbb [ccc] => aaabbb ) obj: 1.2824709415436 stdClass Object ( [aaa] => aaa [bbb] => bbb [ccc] => aaabbb ) phpversion 5.2.17 因此可以得出一个结论:即使在PHP 5.2上,对象也较慢。除非确实需要它们的oop功能,否则不要使用它们。

保持可爱mmm 2020-02-08 14:19:45 0 浏览量 回答数 0

回答

简短的答案是,如果“第二维”可能在任何地方,您都必须至少隐式​​循环才能做到。如果必须在第一项中,则只需执行 is_array($arr[0]); 但是,我能找到的最有效的通用方法是在数组上使用一个foreach循环,每当找到一个命中点时就会短路(至少隐式循环比直接的for()更好): $ more multi.php 'a',2 => 'b',3 => array(1,2,3)); $b = array(1 => 'a',2 => 'b'); $c = array(1 => 'a',2 => 'b','foo' => array(1,array(2))); function is_multi($a) { $rv = array_filter($a,'is_array'); if(count($rv)>0) return true; return false; } function is_multi2($a) { foreach ($a as $v) { if (is_array($v)) return true; } return false; } function is_multi3($a) { $c = count($a); for ($i=0;$i<$c;$i++) { if (is_array($a[$i])) return true; } return false; } $iters = 500000; $time = microtime(true); for ($i = 0; $i < $iters; $i++) { is_multi($a); is_multi($b); is_multi($c); } $end = microtime(true); echo "is_multi took ".($end-$time)." seconds in $iters times\n"; $time = microtime(true); for ($i = 0; $i < $iters; $i++) { is_multi2($a); is_multi2($b); is_multi2($c); } $end = microtime(true); echo "is_multi2 took ".($end-$time)." seconds in $iters times\n"; $time = microtime(true); for ($i = 0; $i < $iters; $i++) { is_multi3($a); is_multi3($b); is_multi3($c); } $end = microtime(true); echo "is_multi3 took ".($end-$time)." seconds in $iters times\n"; ?> $ php multi.php is_multi took 7.53565130424 seconds in 500000 times is_multi2 took 4.56964588165 seconds in 500000 times is_multi3 took 9.01706600189 seconds in 500000 times 隐式循环,但是一旦找到匹配项我们就无法短路... $ more multi.php 'a',2 => 'b',3 => array(1,2,3)); $b = array(1 => 'a',2 => 'b'); function is_multi($a) { $rv = array_filter($a,'is_array'); if(count($rv)>0) return true; return false; } var_dump(is_multi($a)); var_dump(is_multi($b)); ?> $ php multi.php bool(true) bool(false)

保持可爱mmm 2020-02-07 01:12:24 0 浏览量 回答数 0

问题

有关php上传文件名唯一确定,防止同名覆盖的问题

小旋风柴进 2019-12-01 20:09:32 1093 浏览量 回答数 1

回答

是的。。你想得没有错,确实会影响你的性能的,,不过我觉得你这么一点都没有啥吧。。你又不是那种非常高并发的情况,无所谓的,单秒的并发可能就几十的,就不要去考虑这么一点性能上面的损失了。。嗯。有种办法你可以把这一些规则 都写到NGINX的配置里面,由他来做会好一些。 ######如果你有计算下时间,和其他处理时间相比,你会发现这个时间你是可以忽略的。如果正在意效率,可以对正则进行一个优先级排序,可以一定程度上优化下。###### $start=microtime(true); 路由分发(注册规则) foreach ($router_config as $path => $rule)  balaba... $delay= 1000*(microtime(true)-$start); file_put_contents("list.txt",$delay."\n",8); route patten 3.6530494689941 8.85009765625 8.8458061218262 10.030031204224 8.8880062103271 4.0349960327148 10.149002075195 3.9291381835938 6.0160160064697 5.2578449249268 PATH_INFO 0.017881393432617 0.032901763916016 0.033140182495117 0.030994415283203 0.015974044799805 0.030994415283203 0.019073486328125 0.030994415283203 0.030994415283203 0.033855438232422 数字不明显,直接做个图示

kun坤 2020-06-06 15:50:17 0 浏览量 回答数 0

问题

php的curl里面在获取页面html数据的时候能指定获取的字节数吗?

落地花开啦 2019-12-01 20:05:49 973 浏览量 回答数 1

回答

您只需在的第二个参数中更改文件名即可更改文件名move_uploaded_file。 代替 move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $_FILES["file"]["name"]); 采用 $temp = explode(".", $_FILES["file"]["name"]); $newfilename = round(microtime(true)) . '.' . end($temp); move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename); 更改为反映您的问题,将根据当前时间产生一个随机数,并附加原始上传文件中的扩展名。您只需在的第二个参数中更改文件名即可更改文件名move_uploaded_file。 代替 move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $_FILES["file"]["name"]); 采用 $temp = explode(".", $_FILES["file"]["name"]); $newfilename = round(microtime(true)) . '.' . end($temp); move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename); 更改为反映您的问题,将根据当前时间产生一个随机数,并附加原始上传文件中的扩展名。来源:stack overflow

保持可爱mmm 2020-05-10 18:34:34 0 浏览量 回答数 0

问题

MySQL vs MongoDB 1000读取?mysql

保持可爱mmm 2020-05-16 22:27:46 2 浏览量 回答数 1

问题

在MoPaaS搭建一个北京时间API?报错

爱吃鱼的程序员 2020-06-09 10:49:30 0 浏览量 回答数 1

问题

再问订单号生成算法?

小旋风柴进 2019-12-01 20:14:29 2123 浏览量 回答数 1

回答

list($s1, $s2) = explode(' ', microtime()); $timestamp = (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000); $secret = 'xxxxx'; $data = $timestamp . "\n" . $secret; $signStr = base64_encode(hash_hmac('sha256', $data, $secret)); $signStr = utf8_encode(urlencode($signStr)); $webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxxxx"; $webhook .= "&timestamp=$timestamp&sign=$signStr"; 这总是提示签名不匹配是怎么肥四{"errcode":310000,"errmsg":"sign not match"}

风中的天堂 2019-12-02 03:14:38 0 浏览量 回答数 0

问题

php 验证码无法正常显示的问题

小旋风柴进 2019-12-01 20:11:19 844 浏览量 回答数 1

问题

OSS SignatureDoesNotMatch

栗子雪忆 2019-12-01 20:04:41 3564 浏览量 回答数 2

问题

急急急!!!oss put 请求SignatureDoesNotMatch

栗子雪忆 2019-12-01 20:04:41 3956 浏览量 回答数 1

问题

支付宝宝令的时间同步是神马原理。:报错

kun坤 2020-06-06 00:45:27 0 浏览量 回答数 1

问题

MySQL服务器消失了-恰好60秒?mysql

保持可爱mmm 2020-05-17 09:42:36 1 浏览量 回答数 1

问题

PHP单文件加载的性能的问题:报错

kun坤 2020-06-07 14:40:18 0 浏览量 回答数 1

回答

./configure --prefix=/opt/lampp/include/php --with-config-file-path=/opt/lampp/include/php/etc  --with-inconv-dir --with-freetype-dir=/opt/lampp/bin --with-jpeg-dir=/opt/lampp/bin --with-png-dir=/opt/lampp/bin --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/opt/lampp/bin --with-gd --enable-ge-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-opcache  --enable-maintainer-zts --with-mysql=/usr/include/mysql  --with-mysqli=/usr/bin/mysql_config 给你换成了以下参数,你那参数需要先安装mysql,环境中要由mysql开发库才行。 --enable-mysqlnd   --with-mysql=mysqlnd  --with-mysqli=mysqlnd  --enable-pdo  --with-pdo-mysql 另外开启pthreads PHP扩展,扩展也依赖pthreads库,linux一般有 ######回复 @mickelfeng : 安装pthreads-master路径,不过make的时候还有一个错误,就是 ./classes/pool.h:330: error: too few arguments to function 'zend_hash_apply' make: *** [php_pthreads.lo] Error 1 帮我再看下~终于快弄好了~我这小笨脑袋~谢谢~######你编译的时候可能没加这个参数 ,还有就是看是不是你编译的那个版本######回复 @mickelfeng : 再问下哈~为嘛我php重新编译后,打开phpinfo,找不到enable-maintainer-zts,是什么情况哈~是缺少了什么吗?求解答######echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf /sbin/ldconfig 加入 /usr/local/lib 后ldconfig 这样再配置就没有错误了~谢谢哈~######--enable-opcache=no 替换成这样###### 把mysql的改成这样 --with-mysql=/opt/lampp/include --with-mysqli=/opt/lampp/bin/mysql_config 还是出现can't find mysql 来个大神帮我解决下哈~谢谢了~一直都是在win下编程的,现在给我个liunx服务器代码放上去需要 pthreads PHP扩展,求解决啊 @Tuesday,@梦想岛 ,@mickelfeng 来帮忙看下哈~ ###### @微默 @梁上有木 来帮忙看下哈~谢谢~无论怎么弄都是can't find mysql######可以看下我的编译参数: http://my.oschina.net/eechen/blog/411534 安装编译PHP依赖的开发工具和库: sudo apt-get install \ build-essential \ autoconf \ libtool \ re2c \ libxml2-dev \ openssl \ libcurl4-openssl-dev \ libbz2-dev \ libjpeg-dev \ libpng12-dev \ libfreetype6-dev \ libldap2-dev \ libmcrypt-dev \ libmysqlclient-dev \ libxslt1-dev \ libxt-dev \ libpcre3-dev \ libxpm-dev \ libt1-dev \ libgmp-dev \ libpspell-dev \ librecode-dev \ libreadline6-dev configure_php.sh #!/bin/bash ./configure \ --prefix=/png/php/5.4 \ --enable-maintainer-zts \ --enable-fpm \ --enable-pdo \ --enable-sockets \ --enable-exif \ --enable-soap \ --enable-ftp \ --enable-wddx \ --enable-pcntl \ --enable-soap \ --enable-bcmath \ --enable-mbstring \ --enable-dba \ --enable-gd-native-ttf \ --enable-gd-jis-conv \ --enable-zip \ --enable-calendar \ --enable-shmop \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --with-mysql \ --with-mysqli \ --with-pdo-mysql \ --with-pdo-sqlite \ --with-iconv \ --with-gmp \ --with-pspell \ --with-xmlrpc \ --with-openssl \ --with-mhash \ --with-mcrypt \ --with-xsl \ --with-curl \ --with-pcre-regex \ --with-gd \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-zlib-dir=/usr \ --with-xpm-dir=/usr \ --with-freetype-dir=/usr \ --with-gettext=/usr \ --with-zlib=/usr \ --with-bz2=/usr \ --with-recode=/usr \ --with-ldap \ --with-pear \ --with-readline 安装pthreads多线程扩展: /png/php/5.4/bin/pecl install pthreads ######想问你下哈~我重新编译php后在phpinfo()下面查看的,Thread Safety是disabled,这个是不是要变成enabled才可以啊~现在 pthreads make一直出错~求解答啊~这个弄了几天了,还不好~求解答下哈~谢谢~我原本的lampp里面的php是5.5.30,我重新编译的也是5.5.30~######我这边公司电脑屏蔽了一些网站,打不开你给的网址,我回去看下哈~谢谢啦~刚开始在linux下写东西,以后希望你能多多帮助我哈~十分感谢~###### 引用来自“mickelfeng”的评论./configure --prefix=/opt/lampp/include/php --with-config-file-path=/opt/lampp/include/php/etc  --with-inconv-dir --with-freetype-dir=/opt/lampp/bin --with-jpeg-dir=/opt/lampp/bin --with-png-dir=/opt/lampp/bin --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/opt/lampp/bin --with-gd --enable-ge-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-opcache  --enable-maintainer-zts --with-mysql=/usr/include/mysql  --with-mysqli=/usr/bin/mysql_config 给你换成了以下参数,你那参数需要先安装mysql,环境中要由mysql开发库才行。 --enable-mysqlnd   --with-mysql=mysqlnd  --with-mysqli=mysqlnd  --enable-pdo  --with-pdo-mysql 另外开启pthreads PHP扩展,扩展也依赖pthreads库,linux一般有 安装pthreads-master路径错了,现改成了 cd pthreads-master /opt/lampp/include/php/bin/phpize ./configure --with-php-config =/opt/lampp/include/php/bin/php-config 不过现在还有一个错误,就是./classes/pool.h:330: error: too few arguments to function \u2018zend_hash_apply\u2019 make: *** [php_pthreads.lo] Error 1 我再看看~终于快弄好了~我这小笨脑袋~ ######回复 @mickelfeng : :https://github.com/krakjoe/pthreads和http://pecl.php.net/package/pthreads######回复 @kuangkuang1 : qq: 446838006######要不你给我个qq号或者微信号,我加下你~可以给你截图看下~不过我手机信号也有点屏蔽~估计会比较慢~谢谢哈~######回复 @mickelfeng : 还是不行啊~呜呜~还是 make: *** [php_pthreads.lo] Error 1 这个错误~并且make 有好多的error~ 我用了几个的 pthreads包了 是不是我要在php.ini里添加神马东西~我用的php是5.5.30######回复 @kuangkuang1 : 跟这个没有关系。这个是线程安全。disabled也可以用。###### 引用来自“mickelfeng”的评论./configure --prefix=/opt/lampp/include/php --with-config-file-path=/opt/lampp/include/php/etc  --with-inconv-dir --with-freetype-dir=/opt/lampp/bin --with-jpeg-dir=/opt/lampp/bin --with-png-dir=/opt/lampp/bin --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/opt/lampp/bin --with-gd --enable-ge-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-opcache  --enable-maintainer-zts --with-mysql=/usr/include/mysql  --with-mysqli=/usr/bin/mysql_config 给你换成了以下参数,你那参数需要先安装mysql,环境中要由mysql开发库才行。 --enable-mysqlnd   --with-mysql=mysqlnd  --with-mysqli=mysqlnd  --enable-pdo  --with-pdo-mysql 另外开启pthreads PHP扩展,扩展也依赖pthreads库,linux一般有 引用来自“kuangkuang1”的评论 安装pthreads-master路径错了,现改成了 cd pthreads-master /opt/lampp/include/php/bin/phpize ./configure --with-php-config =/opt/lampp/include/php/bin/php-config 不过现在还有一个错误,就是./classes/pool.h:330: error: too few arguments to function \u2018zend_hash_apply\u2019 make: *** [php_pthreads.lo] Error 1 我再看看~终于快弄好了~我这小笨脑袋~ 回复 @mickelfeng : 呜呜~现在还是用不了pthreads,想再问下哈~phpinfo下 Configuration File (php.ini) Path /opt/lampp/etc Loaded Configuration File /opt/lampp/etc/php.ini extension_dir /opt/lampp/include/php/lib/php/extensions/no-debug-zts-20121212/     /opt/lampp/include/php/lib/php/extensions/no-debug-zts-20121212/ 这个目录也是对的~在/opt/lampp/etc/php.ini这个.ini文件里面改的extension_dir=/opt/lampp/include/php/lib/php/extensions/no-debug-zts-20121212/ extension="pthreads.so" 我真心的不知道我哪个地方还错了哈~求再指点下~感谢~ ######修改加载的php.ini ,extension_dir=扩展生成的目录,  extension=扩展名.so######Wrote PEAR system config file at: /opt/lampp/include/php/etc/pear.conf You may want to add: /opt/lampp/include/php/lib/php to your php.ini include_path /root/php-5.5.30/build/shtool install -c ext/...######想再问一下哈~我又重新编译了php,出现了下面的提示,是要做什么吗?######Fatal error: Class 'Thread' not found in /opt/lampp/htdocs/DPDC/Crawl/test_sn.class.php on line 3,还是报错,还是报错######修改的就是phpinfo里面的php.ini的目录所在的文件啊~就是不对~唉###### 引用来自“mickelfeng”的评论./configure --prefix=/opt/lampp/include/php --with-config-file-path=/opt/lampp/include/php/etc  --with-inconv-dir --with-freetype-dir=/opt/lampp/bin --with-jpeg-dir=/opt/lampp/bin --with-png-dir=/opt/lampp/bin --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/opt/lampp/bin --with-gd --enable-ge-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-opcache  --enable-maintainer-zts --with-mysql=/usr/include/mysql  --with-mysqli=/usr/bin/mysql_config 给你换成了以下参数,你那参数需要先安装mysql,环境中要由mysql开发库才行。 --enable-mysqlnd   --with-mysql=mysqlnd  --with-mysqli=mysqlnd  --enable-pdo  --with-pdo-mysql 另外开启pthreads PHP扩展,扩展也依赖pthreads库,linux一般有 放假了几天,今天刚上班哈~@mickelfeng大师傅,我又重新编译了php,出现了下面的提示,是需要做什么吗? Wrote PEAR system config file at: /opt/lampp/include/php/etc/pear.conf You may want to add: /opt/lampp/include/php/lib/php to your php.ini include_path /root/php-5.5.30/build/shtool install -c ext/phar/phar.phar /opt/lampp/include/php/bin ln -s -f phar.phar /opt/lampp/include/php/bin/phar ###### 你没安装成功。 PHPDIR/phpize ./configure --with-php-config=/PHPDIR/bin/php-config make make install vi /PHPDIR/etc/php.ini 添加: extension = "pthreads.so" <?php   class test_thread_run extends Thread   {       public $url;       public $data;       public function __construct($url)       {           $this->url = $url;       }       public function run()       {           if(($url = $this->url))           {               $this->data = model_http_curl_get($url);           }       }   }   function model_thread_result_get($urls_array)   {       foreach ($urls_array as $key => $value)       {           $thread_array[$key] = new test_thread_run($value["url"]);           $thread_array[$key]->start();       }       foreach ($thread_array as $thread_array_key => $thread_array_value)       {           while($thread_array[$thread_array_key]->isRunning())           {               usleep(10);           }           if($thread_array[$thread_array_key]->join())           {               $variable_data[$thread_array_key] = $thread_array[$thread_array_key]->data;           }       }       return $variable_data;   }   function model_http_curl_get($url,$userAgent="")   {       $userAgent = $userAgent ? $userAgent : 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)';       $curl = curl_init();       curl_setopt($curl, CURLOPT_URL, $url);       curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);       curl_setopt($curl, CURLOPT_TIMEOUT, 5);       curl_setopt($curl, CURLOPT_USERAGENT, $userAgent);       $result = curl_exec($curl);       curl_close($curl);       return $result;   }   for ($i=0; $i < 100; $i++)   {       $urls_array[] = array("name" => "baidu", "url" => "http://www.baidu.com/s?wd=".mt_rand(10000,20000));   }   $t = microtime(true);   $result = model_thread_result_get($urls_array);   $e = microtime(true);   echo "多线程:".($e-$t)."\n";   $t = microtime(true);   foreach ($urls_array as $key => $value)   {       $result_new[$key] = model_http_curl_get($value["url"]);   }   $e = microtime(true);   echo "For循环:".($e-$t)."\n"; ?> ######运行phpize提示这样的错误: cannot find config.m4. Make sure that you run '/usr/bin/phpize' in the top level source directory of the module 这个php重新编译的~好像一直是重新安装的失败啊~###### 引用来自“mickelfeng”的评论 你没安装成功。 PHPDIR/phpize ./configure --with-php-config=/PHPDIR/bin/php-config make make install vi /PHPDIR/etc/php.ini 添加: extension = "pthreads.so" <?php   class test_thread_run extends Thread   {       public $url;       public $data;       public function __construct($url)       {           $this->url = $url;       }       public function run()       {           if(($url = $this->url))           {               $this->data = model_http_curl_get($url);           }       }   }   function model_thread_result_get($urls_array)   {       foreach ($urls_array as $key => $value)       {           $thread_array[$key] = new test_thread_run($value["url"]);           $thread_array[$key]->start();       }       foreach ($thread_array as $thread_array_key => $thread_array_value)       {           while($thread_array[$thread_array_key]->isRunning())           {               usleep(10);           }           if($thread_array[$thread_array_key]->join())           {               $variable_data[$thread_array_key] = $thread_array[$thread_array_key]->data;           }       }       return $variable_data;   }   function model_http_curl_get($url,$userAgent="")   {       $userAgent = $userAgent ? $userAgent : 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)';       $curl = curl_init();       curl_setopt($curl, CURLOPT_URL, $url);       curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);       curl_setopt($curl, CURLOPT_TIMEOUT, 5);       curl_setopt($curl, CURLOPT_USERAGENT, $userAgent);       $result = curl_exec($curl);       curl_close($curl);       return $result;   }   for ($i=0; $i < 100; $i++)   {       $urls_array[] = array("name" => "baidu", "url" => "http://www.baidu.com/s?wd=".mt_rand(10000,20000));   }   $t = microtime(true);   $result = model_thread_result_get($urls_array);   $e = microtime(true);   echo "多线程:".($e-$t)."\n";   $t = microtime(true);   foreach ($urls_array as $key => $value)   {       $result_new[$key] = model_http_curl_get($value["url"]);   }   $e = microtime(true);   echo "For循环:".($e-$t)."\n"; ?> 大师父,我又重新安装了一下:./configure --prefix=/opt/lampp/include/php --with-config-file-path=/opt/lampp/include/php/etc --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-inconv=/opt/lampp/lib --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-ge-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --with-apxs2=/opt/lampp/bin/apxs --enable-maintainer-zts 安装完成后,再cp php.ini-production /opt/lampp/include/php/etc/php.ini php重新编译完成了~呼呼,终于弄好了~感谢哈~@mickelfeng ######使用mysql的时候会出错~需要把新的php.ini里面的这三项:mysql.default_socket = pdo_mysql.default_socket= mysqli.default_socket = 都设置为 mysql.sock(或mysqld.sock)的具体路径~ 完美~终于解决啦~

爱吃鱼的程序员 2020-05-31 13:04:05 0 浏览量 回答数 0

问题

PHP利用共享内存构建计数器完成自增数值id生成适用于网页游戏携带区服号的数值id生成:报错

kun坤 2020-06-07 13:32:54 0 浏览量 回答数 1

回答

由于似乎没有人做过此事,因此我认为最好在某个地方提供参考。我已经通过基准测试或代码掠过来表征这些array_*功能。我试图将更有趣的Big-O放在顶部。此列表不完整。 注意:假设是哈希查找,所有计算出来的Big-O都是O(1),即使它实际上是O(n)。n的系数是如此之低,在大Big-O的特征开始生效之前,存储足够大的数组的内存开销会伤害您。例如,array_key_exists在N = 1和N = 1,000,000时的通话时间差为〜50%。 有趣的地方: isset/ array_key_exists比in_array和快得多array_search +(联盟)比array_merge(看起来更好)快一点。但是它的工作方式有所不同,因此请记住这一点。 shuffle 在与Big-O相同的层上 array_rand array_pop/ array_push比重新索引罚款更快array_shift/array_unshift 查询: array_key_existsO(n)但实际上接近O(1)-这是由于碰撞中的线性轮询,但是由于碰撞的机会非常小,因此系数也非常小。我发现您将哈希查找视为O(1)来给出更现实的big-O。例如,N = 1000和N = 100000之间的差异仅减慢了50%。 isset( $array[$index] )O(n)但实际上接近O(1)-它使用与array_key_exists相同的查找。由于是语言构造,因此如果密钥是硬编码的,将缓存查找,从而在重复使用同一密钥的情况下加快了查找速度。 in_array O(n)-这是因为它将对数组进行线性搜索,直到找到该值为止。 array_search O(n)-它使用与in_array相同的核心功能,但返回值。 队列功能: array_push O(∑ var_i,对于所有i) array_pop O(1) array_shift O(n)-必须重新索引所有键 array_unshift O(n + ∑ var_i,对于所有i)-必须重新索引所有键 数组相交,并集,减法: array_intersect_key 如果交集100%进行O(Max(param_i_size)* ∑param_i_count,对于所有i),如果交集0%相交O(∑param_i_size,对于所有i) array_intersect 如果交集100%对所有i执行O(n ^ 2 * ∑param_i_count,对于所有i),如果交集0%与O(n ^ 2)相交 array_intersect_assoc 如果交集100%进行O(Max(param_i_size)* ∑param_i_count,对于所有i),如果交集0%相交O(∑param_i_size,对于所有i) array_diff O(πparam_i_size,for all i)-那是所有param_sizes的乘积 array_diff_key O(∑ param_i_size,for i!= 1)-这是因为我们不需要遍历第一个数组。 array_merge O(∑ array_i,i!= 1)-不需要遍历第一个数组 (联合)O(n),其中n是第二个数组的大小(即array_first + array_second)-比array_merge少的开销,因为它不必重新编号 array_replace O(∑ array_i,对于所有i) 随机: shuffle 上) array_rand O(n)-需要线性轮询。 明显的Big-O: array_fill 上) array_fill_keys 上) range 上) array_splice O(偏移量+长度) array_slice O(偏移量+长度)或O(n)如果长度= NULL array_keys 上) array_values 上) array_reverse 上) array_pad O(pad_size) array_flip 上) array_sum 上) array_product 上) array_reduce 上) array_filter 上) array_map 上) array_chunk 上) array_combine 上) 我要感谢Eureqa使得找到函数的Big-O很容易。这是一个了不起的免费程序,可以为任意数据找到最佳拟合函数。 编辑: 对于那些怀疑PHP数组查找是的人O(N),我编写了一个基准测试(O(1)对于大多数实际值它们仍然有效)。 php数组查找图 $tests = 1000000; $max = 5000001; for( $i = 1; $i <= $max; $i += 10000 ) { //create lookup array $array = array_fill( 0, $i, NULL ); //build test indexes $test_indexes = array(); for( $j = 0; $j < $tests; $j++ ) { $test_indexes[] = rand( 0, $i-1 ); } //benchmark array lookups $start = microtime( TRUE ); foreach( $test_indexes as $test_index ) { $value = $array[ $test_index ]; unset( $value ); } $stop = microtime( TRUE ); unset( $array, $test_indexes, $test_index ); printf( "%d,%1.15f\n", $i, $stop - $start ); //time per 1mil lookups unset( $stop, $start ); } 问题来源于stack overflow

保持可爱mmm 2020-01-15 16:54:32 0 浏览量 回答数 0

问题

PHP重写的消息队列MQ类

gia114 2019-12-01 21:17:46 9428 浏览量 回答数 2

问题

如何修复已被错误的字节数长度损坏的序列化字符串?

保持可爱mmm 2020-05-10 19:47:46 1 浏览量 回答数 1

问题

如何处理计量计费日志?

轩墨 2019-12-01 21:59:00 1296 浏览量 回答数 0

问题

PHP 收发消息如何实现?

猫饭先生 2019-12-01 21:15:06 1332 浏览量 回答数 0

问题

哪位大神能帮我找出后门代码是哪一些啊

2019-12-01 21:35:50 1911 浏览量 回答数 2

问题

请问独享云虚拟主机基础版 需要空间支持smtp发邮件

晴天1979 2019-12-01 19:10:51 99 浏览量 回答数 2

问题

请问阿里云 独享云虚拟主机 支持SMTP发邮件吗?我这里发出怎么没有工单?我如何找到原来问题?

晴天1979 2019-12-01 19:10:52 173 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 SQL审核 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 人工智能 阿里云云栖号 云栖号案例 云栖号直播