Desktop
Website
Multimedia
Database
Security
Enterprise
Pytanie : Perl pismo zbyt długo
I mieć pismo który robić mnóstwo opierać się na "prosty chodzenie średnia" che z kolei opierać się na 100 szyk. The program wydawać mnóstwo czas the matematyka. I musieć ono ono. Tutaj być the kod:
------------------
package MAGISTRALA;
use surowy;
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 mój $i (@price_array) {
druk "i: $i \ n";
}
my $sma = (0);
for (mój $count = 100000; $count >= (1); $count--) {# wystrzał 4 wartość "$length_ma "
$sma = simple_moving_avg (\ @price_
array, $len
gth_of_sma
);
}
print "Prosty poruszający avg: $sma \ n";
exit;
sub simple_moving_avg {
mój $pointer_array = $_ [(0)];
mój $length_ma = $_ [(1)];
mój $sum = (0);
mój @tmp = @$pointer_array;
dla (mój $count = $length_ma; $count >= (1); $count--) {
mój $value = wystrzał (@tmp);
jeżeli (definiować $value) {
$sum = $value + $sum;
}
}
mój $ma = sprintf ("%.2f", ($sum/$length_ma));
powrotny $ma;
}
--------------------------
Here być the rezultat od DProf:
Total Upływać Czas = 1.987965 Seconds
User+System Czas = 2.194965 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/wywoławczy Csec/c Name
108. 2.377 2.377 100000 0.0000 0.0000 MAGISTRALA:: simple_moving_avg
0.00 - -0.000 (1) - - surowy:: import
0.00 - -0.000 (1) - - magistrala:: BEGIN
0.00 - -0.000 (1) - - surowy:: bits
0.00 - -0.000 (1) - - MAGISTRALA:: BEGIN
--------
My pytanie być: Móc ten perl subroutine ulepszać ulepszać (the ExclSec potrzeba ciąć przynajmniej 50%)? I być niezdolny the szyk w the okręt podwodny. Jeżeli the kod móc znamiennie ulepszać ulepszać ono być szybki a. c. ++ program (I być uczenie C++) lub asembler? Kod ten kod być? Wiele thanks.
Odpowiedź : Perl pismo zbyt długo
simple_moving_avg simple_moving_avg {
mój ($pointer_array, $length_ma
) =@_;
mój $sum = (0);
$sum += $ _ dla @ {$pointer_array} [(0). $length_ma-1
];
powrotny sprintf " %.2f ", $sum/$length_ma;
}
Inne rozwiązania
SUP7203B PFC niekompatybilność
system przywrócić punkt
IE8 Przedkładać Forma z [Wchodzić Do] Klucz, stosownie
zintegrowany wordpress w miejsce. blog pic doczepianie.
Łączyć XenServer wśród iPhone
Porzucony Windows 7 Instalacyjny odpowiedź kartoteka
SSH konsola: iść precyzować falcówka po nazwa użytkownika
Tworzyć Linux przygotowywać CD-R stylowy but dysk…
Dlaczego Sysinternals Wirusowy wyszukiwarka redirect?
MS Dojazdowy SQL Podział Dojazdowy obejście potrzebować