求一利用php快速生成柱状图的函数,现以完成一个简易函数比较慢。该如何解决

WBOY
Release: 2016-06-13 13:27:58
Original
878 people have browsed it

求一利用php快速生成柱状图的函数,现以完成一个简易函数比较慢。
求一利用php快速生成柱状图的函数,现以完成一个简易函数比较慢。

由于初学,仅会操控CSS生成个简易的柱状图,但我的函数在数据大于25000条的时候超级慢,1万多一点的时候生成图的时间是10多秒。这速度太慢了,求大侠优化。

PHP code


';
       $returnarray2=array();
       $db1=new mysqli('localhost','admin','admin','ssq') ;
       $sql_query='select l1,l2,l3,l4,l5,l6 from hmk_temp_1 as bb limit 0,1000';
       $res1=$db1->query($sql_query); 
       while($row1=mysqli_fetch_array($res1,MYSQLI_NUM)) {
         $returnarray2=array_merge($returnarray2,$row1);
        }
       $array_values=array_count_values($returnarray2);
       ksort($array_values);
       //print_r($array_values);
       $rates=round(200/max($array_values),2);
       echo '$rates='.$rates;
       echo '

一区

    '; foreach($array_values as $key=>$value){ echo '
  • ' .$value.''.''.$key.'
  • ' ; } echo '

' ; //echo ''; } $end_time = microtime(true); $end_time *= 1000 * 1000; echo "Total time used : " . ($end_time - $beg_time) . "ms" . PHP_EOL; ?>
Copy after login


------解决方案--------------------
先找出瓶颈是在什么地方

有没考虑过使用 pChart?
------解决方案--------------------
Google有一个库提供。楼主可以查一下。
------解决方案--------------------
输出的 Total time used 看似巨大,但由于计量单位有误,就不足信了
microtime(true) 返回的是秒, * 1000 * 1000 后为微秒,你把它当做毫秒,就放大了 1000 倍

代码简单并不代表运行效率就高,看一下这个测试就知道了
PHP code
$s_time = microtime(true);

$d = range(1, 33);
$r = array();
for($i=0; $i------解决方案--------------------
建议楼主看看:ChartDirector软件,现在有破解的,很好用
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!