Strona Główna Unixy.pl
Internetowe forum na temat systemów GNU/Linux Unix

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload
 Ogłoszenie 
Strona korzysta z plików cookies w celu realizacji usług (logowanie do konta itp.). Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.

Poprzedni temat «» Następny temat
Wybór odpowiedniego skryptu
Autor Wiadomość
holek86 

Dołączył: 05 Gru 2009
Posty: 4
Wysłany: 2009-12-06, 00:13   Wybór odpowiedniego skryptu

Witam,

Prosiłbym o pomoc w wyborze skryptu. Zależy mi na tym aby skrypt był prosty, ponieważ nie mam doświadczenia w programowaniu a szczególnie jeżeli chodzi unixa, a co najważniejsze żeby wykonywał się możliwie jak najdłużej, (np kilkadziesiąt sekund, lub kilka minut, a nawet dłużej).

Myślałem nad silnią, ale silnia wykonuje się bardzo szybko nawet dla większych wartości, ponadto od pewnych wartości zawsze zwraca wartość 0 (zero), rozumiem ze wynik nie mieści się w pamięci. Zauważyłem również ze np dla wartości 10000 skrypt wykonuje się dłużej niż dla wartości 100, mimo że wynik i tak będzie 0.
Zastanawiam się czy taka silnia np z 100000 będzie miała sens jeżeli chciałbym porównać czasy wykonania w różnych powłokach unixa, a może w jednym skrypcie powtarzać liczenie jakiejś mniejszej silni kilka razy.

A może znacie jakieś inne, proste skrypty, które wykonują się bardzo długo ?

Z góry dzięki za pomoc.
 
     
Maciek_Rutecki 
Administrator

JID: bc547@jabber.gda.pl
Pomógł: 39 razy
Dołączył: 07 Cze 2005
Posty: 2959
Wysłany: 2009-12-06, 18:08   

holek86 napisał/a:
A może znacie jakieś inne, proste skrypty, które wykonują się bardzo długo ?


Kod:
#!/bin/sh
sleep 1000000000

?

Dziwne wymagania narzucane skryptowi. Prosty skrypt, który długo się wykonuje oznacza nieumiejętność programowania.

holek86 napisał/a:
Myślałem nad silnią, ale silnia wykonuje się bardzo szybko nawet dla większych wartości, ponadto od pewnych wartości zawsze zwraca wartość 0 (zero), rozumiem ze wynik nie mieści się w pamięci.


Pewnie wywołujesz skrypt lub jakąś jego część rekurencyjnie i system pewnie ubija go. Trudno zgadnąć nie znając zawartości skryptu.
_________________
Maciek
http://www.maciek.unixy.pl
 
     
holek86 

Dołączył: 05 Gru 2009
Posty: 4
Wysłany: 2009-12-06, 20:26   

Cytat:
Kod:
#!/bin/sh
sleep 1000000000

Chodzi mi raczej o jakieś obliczenia, chciałbym porównać czas wykonania jakiegoś skryptu w jakiejś powłoce UNIX'a a czas wykonania tych samych działań w języku C++

Co do silni to wygląda ona tak:

Kod:
#!/bin/tcsh
if ( $#argv != 1 ) then
    echo "Skrypt oblicza silnie z podanej liczby calkowitej"
    echo "Skladnia: $0 liczba"
    exit 1
endif
set i=1
set silnia=1
while( $i < $argv[1])
   @ i = $i + 1
   @ silnia = $silnia * $i
end
echo "Silnia z liczby $argv[1] wynosi $silnia"
exit 0
 
     
Maciek_Rutecki 
Administrator

JID: bc547@jabber.gda.pl
Pomógł: 39 razy
Dołączył: 07 Cze 2005
Posty: 2959
Wysłany: 2009-12-06, 21:05   

Limit w bashu dla int to 9223372036854775807.

holek86 napisał/a:
Chodzi mi raczej o jakieś obliczenia, chciałbym porównać czas wykonania jakiegoś skryptu w jakiejś powłoce UNIX'a a czas wykonania tych samych działań w języku C++


Np. policz FFT (dyskretna wersja - DFT)
_________________
Maciek
http://www.maciek.unixy.pl
 
     
holek86 

Dołączył: 05 Gru 2009
Posty: 4
Wysłany: 2009-12-06, 22:15   

FFT czyli Szybka transformacja Fouriera ? Jeśli tak to nie jestem pewien czy sobie z tym poradzę, z samym algorytmem miałem jakiś tam kontakt, ale co do znajomości składni języków programowania to już u mnie bardzo kiepsko. Dlatego też szukam czegoś bardzo prostego.

A wracając do tej nieszczęsnej silni ;], czy np zapętlenie kilkaset razy(a może i więcej) obliczenia silni z liczby np 20 miałoby jakiś sens, jeżeli chodzi o porównanie czasów wykonania tej silni w c++ i np w bash'u ?
 
     
Maciek_Rutecki 
Administrator

JID: bc547@jabber.gda.pl
Pomógł: 39 razy
Dołączył: 07 Cze 2005
Posty: 2959
Wysłany: 2009-12-06, 22:18   

holek86 napisał/a:
FT czyli Szybka transformacja Fouriera ?


Tak, w sieci są na pewno gotowe rozwiązania. Konkretniej do DFT.

holek86 napisał/a:
czy np zapętlenie kilkaset razy(a może i więcej) obliczenia silni z liczby np 20 miałoby jakiś sens, jeżeli chodzi o porównanie czasów wykonania tej silni w c++ i np w bash'u ?


Musiałbyś mieć naprawdę wolny komputer, żeby zauważyć dużą różnicę w czasach wykonywania, ale próbować można.
_________________
Maciek
http://www.maciek.unixy.pl
 
     
holek86 

Dołączył: 05 Gru 2009
Posty: 4
Wysłany: 2009-12-08, 10:34   

No może rzeczywiście FFT i DFT byłoby odpowiedniejsze, ale na początek spróbuje z tą silnią żeby się z tym trochę oswoić.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group