tom*_*136 1 php arrays string variables loops
php处理大量字符串似乎很慢,无论如何我可以提高它的速度吗?我试图写的代码会将图像变成一串RGB值供以后使用,就像这样
$string = "255:255:253#12:12:23#33:34:24"/*an output of a $SIZE = 3 image*/
Run Code Online (Sandbox Code Playgroud)
问题是当$ SIZE大到256时,产生字符串需要1秒钟
$r = "";
$g = "";
$b = "";
for($y = 0; $y <= $SIZE-1; $y++){
for($x = 0; $x <= $SIZE-1; $x++){
{$r .= $arr2[$y][$x]["R"].":";}
{$g .= $arr2[$y][$x]["G"].":";}
{$b .= $arr2[$y][$x]["B"].":";}
}
}
$r = rtrim($r, ":");
$g = rtrim($g, ":");
$b = rtrim($b, ":");
$str_a .= $r."#".$g."#".$b;
Run Code Online (Sandbox Code Playgroud)
要记住的第一件事是你正在进行大量的迭代.如果你的$ SIZE var是256,那么你实际上是在进行256 X 256(65536)次迭代.你加速循环的最大希望是找到一种方法来做你需要在更少的循环中实现的东西.
您可以尝试使用数组来构建要输出的字符串,然后在完成后使用implode().然而,这将是一个微优化,你从中获得的速度增益可能不值得努力.我建议构建一个简单的测试循环,你可以通过基准来比较字符串连接与数组构建和内爆.
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |