PHP程序写得越多发现响应速度越慢,请问写程序中应该注意些啥?我是新手!怎么提高程序响应时间!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP程序写得越多发现响应速度越慢,请问写程序中应该注意些啥?我是新手!怎么提高程序响应时间!相关的知识,希望对你有一定的参考价值。
如题
举个简单的例子
循环一个数组时需要计算数组的长度.
通常,我们这么写
//$arr是一个数组;for($i=0;$i<count($arr);$i++)
/******这就是一个速度较慢的循环,因为每一次循环的时候都要运行count()计算数组长度*******/
//正确的写法应该是
$count=count($arr);
for($i=0;$i<$count;$i++)
/*****代码*******/
//再举个例子
echo \'1\'.\'2\';慢;
echo \'1\',\'2\';快;
//还有带引号\'\'和双引号"",单引号更快;
//数组的键位例如$arr[key]的写法就不如$arr[\'key\']的快
/*同样的,php在链接数据库或者操作一些文件的时候;要做垃圾处理,在资源使用完毕时,要及时的关闭链接通道,清空结果集和占内存的变量;*/
/*还有很重要的一点,能在php程序里执行的任务,就不要跑到mysql里执行,好好的写你的查询语句*/ 参考技术A 避免过多的循环,和多次mysql查询,可以使用文件缓存把数据缓存起来。
初学go语言,请教生成随机数为何线程越多速度越慢?
初学go,想生成大量随机数,是否重复先忽略,参考网上教程修改出如下代码:
package main
import (
"flag"
"fmt"
"math/rand"
"runtime"
"strconv"
"time"
)
var md = flag.String("cs", "", "cs=要使用几个核心,默认使用全部核心")
func main()
mc := runtime.NumCPU()
flag.Parse()
if *md != ""
mc1, err := strconv.Atoi(*md)
if err == nil
if mc != 0
mc = mc1
else
fmt.Println("使用核心数不能为 0 !")
runtime.GOMAXPROCS(mc)
const COUNT int = 15000000
r := make([]int, COUNT)
ch := make(chan int)
t1 := time.Now()
for i := 0; i < mc; i++
println(i*COUNT/mc, (i+1)*COUNT/mc)
go sj(i*COUNT/mc, (i+1)*COUNT/mc, r, ch)
temp := 0
for i := 0; i < mc; i++
temp += <-ch
t2 := time.Since(t1)
println(temp)
fmt.Println(mc, "个线程用时:", t2)
func sj(from, to int, r []int, ch chan int)
for i := from; i < to; i++
r[i] = rand.Intn(100)
ch <- to - from
原教程是多线程求和,我只是把求和改成了r[i] = rand.Intn(100)。
原求和程序随着设置核心数增加,用时基本是/n,而我这个生成随机数恰好相反,用的核心越多,耗时越多,基本是*n比如:
1 个线程用时: 420.7673ms
2 个线程用时: 776.2297ms
4 个线程用时: 1.4236043s
请问问题出在哪里?
谢谢!
#include <stdlib.h>
#include <time.h> //用到了time函数
int main()
int i,number;
srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样
for (i=0; i<50; i++)
number = rand() % 101; //产生0-100的随机数
printf("%d ", number);
return 0;
以上是关于PHP程序写得越多发现响应速度越慢,请问写程序中应该注意些啥?我是新手!怎么提高程序响应时间!的主要内容,如果未能解决你的问题,请参考以下文章