Desktop
Website
Multimedia
Database
Security
Enterprise
Pergunta : Certificado do Perl que toma demasiado por muito tempo
Eu tenho um certificado que faça muita classificação baseada “em uma média movente simples” que seja baseada por sua vez em 100 das disposições. O programa está gastando muito tempo a execução da matemática. Eu devo apressá-lo acima. Está aqui o código:
------------------CANO PRINCIPAL do
package;
use estrito;
sub simple_moving_avg;
my $length_of_sma = 4;
my @price_array = qw/
11.3
11.25
11.82
11.64
11.19
11.48
11.37
10.84
10.51
10.76
10.8
11.25
11.36
11.34
11.59
11.41
11.18
11.11
11.72
11.57
/;
foreach meu $i (@price_array) {cópia do
“mim: $i \ n”;
my do
} $sma = 0;
for (meu $count = 100000; >= 1 de $count; $count--) {# PNF 4 do
dos valores “$length_ma " $sma = simple_moving_avg (\ @price_
array, $len
gth_of_sma
);
/>print “: $sma \ n”;
exit; simple_moving_avg do
sub {
meu $pointer_array = $_ [0];
meu $length_ma = $_ [1];
meu $sum = 0;
meus @tmp = @$pointer_array;
do
para (meu $count = $length_ma; >= 1 de $count; $count--) {
meu $value = PNF (@tmp);
se ($value definido) {
$sum = $value + $sum;
do
do
}} meu $ma = sprintf (“%.2f”, ($sum/$length_ma));
$ma do retorno;
do
}--------------------------o
Here é o resultado de funcionar DProf: tempo decorrido do
Total = 1.987965 tempo de Seconds
User+System = segundo de 2.194965 #Calls de Seconds
Exclusive Times
%Time ExclSec CumulS/chamada Csec/c Name
108. 2.377 2.377 100000 0.0000 0.0000 CANOS PRINCIPAIS:: simple_moving_avg
0.00 - -0.000 1 - - estrito:: cano principal do import
0.00 - -0.000 1 - -:: BEGIN
0.00 - -0.000 1 - - estrito:: CANO PRINCIPAL do bits
0.00 - -0.000 1 - -:: BEGIN
--------a pergunta do
My é: Pode esta sub-rotina do Perl ser melhorada upon (o ExclSec precisa de ser cortado pelo menos por 50%)? Eu sou incapaz de modificar a disposição que está sendo passada no submarino. Se o código não pode significativamente ser melhorado upon ele seria mais rápido chamar o programa da A.A. ++ (eu estou aprendendo C++) ou o ajuntador? Que esse código seria? Muitos thanks.
class= do
Resposta : Certificado do Perl que toma demasiado por muito tempo
simple_moving_avg secundário {
meu ($pointer_array, $length_ma
) =@_;
meu $sum = 0;
_ de $sum += $ para @ {$pointer_array} [0. $length_ma-1
];
sprintf do retorno " %.2f ", $sum/$length_ma;
}
Outras soluções
Perguntas da entrevista do certificado de Shell da festança
lima de .vmdk
Como encontrar a contagem da fileira em Oracle DataReader em ASP.NET?
Excitador do bluetooth BCM2045 do inspiron 1720 de Dell para o profissional de Windows Xp.
Como conseguir o lightbox mostrar sobre a bandeira instantânea?
Fora do escritório o assistente que não trabalha w/Forwarding configurou
Redistribuindo o RASGO em subnets non-contiguous do OSPF.
líquidos de corpo após a sessão da natação
SQL0952N
Criando um vbscript para a chave do registro - IRPStackSize