Php 大规模操作时,编程干燥或优化速度?

Php 大规模操作时,编程干燥或优化速度?,php,performance,optimization,dry,Php,Performance,Optimization,Dry,我试图弄清楚是否有一种情况可以绕过干编码,而避免使用大型查询/函数 基本上,我可以在每次需要时计算一个变量(学生的财务余额),或者将其存储为单个变量,并在每次付款时更新该变量。我的猜测是,即使它在一千次付款中循环,最好每次都计算以保持干燥。但这更像是一个概念,因为这种情况可能会出现在数据库调用或更复杂的操作中,这些操作可能需要更多的时间或处理速度 php代码示例: $payments = array( array( 'plan' => 100, '

我试图弄清楚是否有一种情况可以绕过干编码,而避免使用大型查询/函数

基本上,我可以在每次需要时计算一个变量(学生的财务余额),或者将其存储为单个变量,并在每次付款时更新该变量。我的猜测是,即使它在一千次付款中循环,最好每次都计算以保持干燥。但这更像是一个概念,因为这种情况可能会出现在数据库调用或更复杂的操作中,这些操作可能需要更多的时间或处理速度

php代码示例:

$payments = array(
    array(
        'plan'  => 100,
        'fees'  => 0.10,
        'paid'  => 110      
    ),array(
        'plan'  => 100,
        'fees'  => 0.05,
        'paid'  => 105  
    ),array(
        'plan'  => 100,
        'fees'  => 0.15,
        'paid'  => 115      
    ),
);

function calculate_balance($payments){
    $max = count($payments);
    $balance = 0;
    for($i=0;$i<$max;$i++){
        $balance = ($payments[$i]['plan'] * (1 + $payments[$i]['fees'])) - $payments[$i]['paid'];
    }
    return $balance;
}
// either save balance as a varaible and only adjust when new payment made...
// or calculate the balance every time it's needed 
$payments=数组(
排列(
“计划”=>100,
“费用”=>0.10,
“已付”=>110
),数组(
“计划”=>100,
“费用”=>0.05,
“已付”=>105
),数组(
“计划”=>100,
“费用”=>0.15,
“已付”=>115
),
);
函数计算余额($payments){
$max=计数(付款);
美元余额=0;

对于($i=0;$i来说,每次计算它的问题当然是性能

仅仅更新先前结果的问题是正确性。 如果有什么事情发生了,你不一定知道

两种方法都可以使用update方法,但偶尔会从头开始重新生成。
在此过程中,您可以判断更新的值是否错误,并使用它发出警告,试图找出错误的原因。

当然,每次计算它的问题是性能

仅仅更新先前结果的问题是正确性。 如果有什么事情发生了,你不一定知道

两种方法都可以使用update方法,但偶尔会从头开始重新生成。
在此过程中,您可以判断更新的值是否错误,并使用它发出警告,试图找出错误的原因。

当然,每次计算它的问题是性能

仅仅更新先前结果的问题是正确性。 如果有什么事情发生了,你不一定知道

两种方法都可以使用update方法,但偶尔会从头开始重新生成。
在此过程中,您可以判断更新的值是否错误,并使用它发出警告,试图找出错误的原因。

当然,每次计算它的问题是性能

仅仅更新先前结果的问题是正确性。 如果有什么事情发生了,你不一定知道

两种方法都可以使用update方法,但偶尔会从头开始重新生成。
在此过程中,您可以判断更新的值是否错误,并使用它发出警告,试图找出错误的原因。

首先,让它工作起来。如果代码没有给出正确答案,那么代码的速度有多快都无关紧要

然后,测量它需要多长时间。它需要多长时间?如果不是,那么你没有什么可以优化的


如果您需要加快代码的速度,那么您必须使用代码分析器来测量代码的哪些部分花费的时间最长。对于PHP,请使用XDebug。

首先,让它工作起来。如果代码没有给出正确的答案,则不管代码的速度有多快

然后,测量它需要多长时间。它需要多长时间?如果不是,那么你没有什么可以优化的


如果您需要加快代码的速度,那么您必须使用代码分析器来测量代码的哪些部分花费的时间最长。对于PHP,请使用XDebug。

首先,让它工作起来。如果代码没有给出正确的答案,则不管代码的速度有多快

然后,测量它需要多长时间。它需要多长时间?如果不是,那么你没有什么可以优化的


如果您需要加快代码的速度,那么您必须使用代码分析器来测量代码的哪些部分花费的时间最长。对于PHP,请使用XDebug。

首先,让它工作起来。如果代码没有给出正确的答案,则不管代码的速度有多快

然后,测量它需要多长时间。它需要多长时间?如果不是,那么你没有什么可以优化的


如果您需要加快代码速度,那么您必须使用代码探查器测量代码的哪些部分花费的时间最长。对于PHP,请使用XDebug。

因此,换句话说,有时值得绕过DRY以提高性能?这是有道理的。如果在性能不成问题时更新了值,例如通过cron,或者有时不存在性能问题,该怎么办在页面加载过程中?@DavidHobs:让我们备份一下。如果一次更改使其不一致,则某些内容会有冗余,因此每当您更改它时,您必须进行多个更改才能不破坏它。数据结构可以有冗余,源代码可以有冗余。DRY通常指源代码。在数据结构中,它被称为normalizing。您指的是数据结构,是的,有时您可以绕过它以获得性能(如果您需要性能),但由于您可以破坏数据结构,因此您应该始终知道如何修复它。感谢这有助于澄清问题,并且非常有意义。特别是干代码v.数据结构并对其进行规范化。欣赏它。因此,换句话说,有时值得绕过干代码来提高性能?有意义。如果在n性能不是问题,比如通过cron,或者有时不是在页面加载期间?@DavidHobs:让我们备份一点。如果某个更改使其不一致,则某些内容具有冗余,因此每当您更改它时,您必须进行多个更改才能不破坏它。数据结构可以有冗余,源代码也可以有冗余。DRY通常指源代码。在数据结构中称为规范化。您指的是数据结构,是的,有时您可以绕过它以获得性能(如果您需要性能),但由于您可以中断