-
1. Data: 2010-03-05 08:59:34
Temat: Testy na WinXP
Od: "Marcin O." <k...@p...onet.pl>
Czesc,
Chce przeszukac duzy plik tekstowy (ponad 1GB), by okreslic liczbe danych
slow w tym pliku, wiec napisalem sobiew tym celu maly programik (C++).
Teraz chcialem poznac kwestie wydajnosci mojego programu z roznymi
ustawieniami i tu zaczynaja sie schody.
Jak uruchamiam sobie ten program pod WinXP nie wiem dlaczego ale system nie
przydziela mu calej mocy obliczeniowej (zostawia sobie na Process
bezczynnosci od 40% do 70%w zaleznosci od humoru, nawet dla tej samej
konfiguracji) przez co nie moge wykonac testow porownawczych miedzy roznymi
konfiguracjami bo program ma przydzielona rozna wartosc czasu procesora.
Czy ktos moze to wyjasnic i jak to ominac??
Dzieki za info i Pozdrawiam
marcin
-
2. Data: 2010-03-05 09:02:08
Temat: Re: Testy na WinXP
Od: Jacek Czerwinski <...@...z.pl>
Marcin O. pisze:
> Czesc,
>
> Chce przeszukac duzy plik tekstowy (ponad 1GB), by okreslic liczbe danych
> slow w tym pliku, wiec napisalem sobiew tym celu maly programik (C++).
> system nie
> przydziela mu calej mocy obliczeniowej (zostawia sobie na Process
> bezczynnosci od 40% do 70%w zaleznosci od humoru, nawet dla tej samej
> konfiguracji)
> Czy ktos moze to wyjasnic ??
I/O ?
-
3. Data: 2010-03-05 09:07:32
Temat: Re: Testy na WinXP
Od: "Marcin O." <k...@p...onet.pl>
> Marcin O. pisze:
>> Czesc,
>>
>> Chce przeszukac duzy plik tekstowy (ponad 1GB), by okreslic liczbe danych
>> slow w tym pliku, wiec napisalem sobiew tym celu maly programik (C++).
>
> > system nie
>> przydziela mu calej mocy obliczeniowej (zostawia sobie na Process
>> bezczynnosci od 40% do 70%w zaleznosci od humoru, nawet dla tej samej
>> konfiguracji)
>
>> Czy ktos moze to wyjasnic ??
>
> I/O ?
>
Moze troche wiecej wyjasnisz przyczyne takiego zachowania sie programu i jak
to sie ma do przerwan.
-
4. Data: 2010-03-05 09:21:08
Temat: Re: Testy na WinXP
Od: Jacek Czerwinski <...@...z.pl>
Marcin O. pisze:
>> Marcin O. pisze:
>>> Czesc,
>>>
>>> Chce przeszukac duzy plik tekstowy (ponad 1GB), by okreslic liczbe danych
>>> slow w tym pliku, wiec napisalem sobiew tym celu maly programik (C++).
>>> system nie
>>> przydziela mu calej mocy obliczeniowej (zostawia sobie na Process
>>> bezczynnosci od 40% do 70%w zaleznosci od humoru, nawet dla tej samej
>>> konfiguracji)
>>> Czy ktos moze to wyjasnic ??
>> I/O ?
>>
>
> Moze troche wiecej wyjasnisz przyczyne takiego zachowania sie programu i jak
> to sie ma do przerwan.
Nie znam bebechow.
Zdroworozsadkowo program dziala, pracuje na twoja rzecz, jednak
systemowo czas jest oddany do systemu - i sie nie wlicza w procent. I
przeladowanie ew. pamieci wirtualnej tez nie jest to liczone jako czas
aplikacji
Dodaj gadu-gadu z kretyńskimi flashami (strasznie zajmują), antywiry,
fesnascie usluznych kolorowych programów które postawily hook na
klawiaturze i myszy, itd. Wyłączyłeś ?
-
5. Data: 2010-03-05 09:30:49
Temat: Re: Testy na WinXP
Od: "Marcin O." <k...@p...onet.pl>
Użytkownik "Jacek Czerwinski" <...@...z.pl> napisał w wiadomości
news:hmqie5$t49$1@news.onet.pl...
>
> Nie znam bebechow.
>
> Zdroworozsadkowo program dziala, pracuje na twoja rzecz, jednak systemowo
> czas jest oddany do systemu - i sie nie wlicza w procent. I przeladowanie
> ew. pamieci wirtualnej tez nie jest to liczone jako czas aplikacji
>
> Dodaj gadu-gadu z kretyńskimi flashami (strasznie zajmują), antywiry,
> fesnascie usluznych kolorowych programów które postawily hook na
> klawiaturze i myszy, itd. Wyłączyłeś ?
>
Tak, wszystko zbedne powylaczane. Ale i tak wydaje mi sie, ze program
powinien zawsze wykonywac sie w podobnym czasie (dla tej samej konfiguracji
srodowiska zewnetrznego) z roznica 1-5%, a nie ze raz wykonuje mi sie 37
sekund (program zajmuje 60% a bezczynny 30% czasu procka) a drugim razem 140
sekund (program zajmuje 15% a bezczynny 80% czasu procka) DZIWNE bo wszystko
to samo!
Czyzby wirus, czy to raczej normalne?
-
6. Data: 2010-03-05 10:42:41
Temat: Re: Testy na WinXP
Od: Piotr M Kuć <k...@n...invalid>
W artykule <hmqh5j$ppc$1@news.onet.pl> Marcin O. napisal(a):
> Czesc,
>
> Chce przeszukac duzy plik tekstowy (ponad 1GB), by okreslic liczbe danych
> slow w tym pliku, wiec napisalem sobiew tym celu maly programik (C++).
> Teraz chcialem poznac kwestie wydajnosci mojego programu z roznymi
> ustawieniami i tu zaczynaja sie schody.
> Jak uruchamiam sobie ten program pod WinXP nie wiem dlaczego ale system nie
> przydziela mu calej mocy obliczeniowej (zostawia sobie na Process
> bezczynnosci od 40% do 70%w zaleznosci od humoru, nawet dla tej samej
> konfiguracji) przez co nie moge wykonac testow porownawczych miedzy roznymi
> konfiguracjami bo program ma przydzielona rozna wartosc czasu procesora.
To nie jest tak że system ogranicza Tobie czas procesora
by zostawić go sobie na "Proces bezczynności". "Proces bezczynności"
to tylko taka zbiorcza informacja ile czasu procesora leży odłogiem,
więc nie należy się przejmować że zajmuje on dużo czasu procesora.
Dla przykładu mój menadżer zadań razportuje teraz między 80-98%
dla procesu bezczynności, bo nie mam uruchomionych żadnych mocno
obciążających procesor aplikacji.
A wracając do sedna sprawy, spodziewam się że różnice obciążenia
są spowodowane przez I/O. Wczytywanie pliku tej wielkości trochę
trwa a w tym czasie procesor po prostu się nudzi. Natomiast
kolejne przetwarzania mogą bardziej obciążać procesor bo część
danych może być już w buforach systemu i mniej czasu będzie
stracone na wejście-wyjście (I/O).
--
Pozdrawiam, Piotr.Kuc-(szympans)-kuciak.net
Piotr Kuć
-
7. Data: 2010-03-05 12:12:16
Temat: Re: Testy na WinXP
Od: "Marcin O." <k...@p...onet.pl>
Użytkownik "Piotr M Kuć" <k...@n...invalid> napisał w wiadomości
news:slrn.pl.hp1o0n.2t8.kuciak@PiotrMarianKuc...
>
> A wracając do sedna sprawy, spodziewam się że różnice obciążenia
> są spowodowane przez I/O. Wczytywanie pliku tej wielkości trochę
> trwa a w tym czasie procesor po prostu się nudzi. Natomiast
> kolejne przetwarzania mogą bardziej obciążać procesor bo część
> danych może być już w buforach systemu i mniej czasu będzie
> stracone na wejście-wyjście (I/O).
Tez sie spodziewalem, ze kolejne wywolania tego programu dzialajacego na tym
samym pliku beda szybsze - a tu odwrotnie. Pierwsze wywolanie programu
trwalo 35 sec a nastepne 140 sec., jestem totalnie zagubiony w tym co
otrzymuje i co widze w Manadzerze zadan, system przydziela rozne wartosci
czasu procesora dla mojego zadani, nie ma reguly (Pracuje na laptopie,
Intel(R) Core(TM)2 Duo CPU T5750 2,00 Ghz 997 Mhz, 1,99 GB RAM, Win XP
Prefessional SP3).
Teraz nie wiem w jaki sposob mam sprawdzic, ktory algorytm jest najszybszy -
czasami ten sam algorytm trwa 30 sec a czasami 140 sec bez zadnych zmian w
programie.
Czy istnieje mozliwosc stalego przydzialu czasu procesora dla poszczegolnego
procesu.
PS. Program dziala w trybie Debug, moze to ma znaczenie...
-
8. Data: 2010-03-05 14:06:00
Temat: Re: Testy na WinXP
Od: Mariusz Marszałkowski <m...@g...com>
On 5 Mar, 13:12, "Marcin O." <k...@p...onet.pl> wrote:
> Użytkownik "Piotr M Kuć" <k...@n...invalid> napisał w
wiadomościnews:slrn.pl.hp1o0n.2t8.kuciak@PiotrMarian
Kuc...
>
>
>
> > A wracając do sedna sprawy, spodziewam się że różnice obciążenia
> > są spowodowane przez I/O. Wczytywanie pliku tej wielkości trochę
> > trwa a w tym czasie procesor po prostu się nudzi. Natomiast
> > kolejne przetwarzania mogą bardziej obciążać procesor bo część
> > danych może być już w buforach systemu i mniej czasu będzie
> > stracone na wejście-wyjście (I/O).
>
> Tez sie spodziewalem, ze kolejne wywolania tego programu dzialajacego na tym
> samym pliku beda szybsze - a tu odwrotnie. Pierwsze wywolanie programu
> trwalo 35 sec a nastepne 140 sec., jestem totalnie zagubiony
Spokojnie.
W komputerze są rozne urzadzenia, jedne sa szybkie, a drugie wolne.
Czasami
kilka urzadzen moze pracowac rownolegle w tym samym czasie, a czasami
jedno urzadzenie zleca zadanie drugiemu urzadzeniu i czeka(!) na
wyniki. Czeka i
nie moze pracowac rowonolegle. W uproszczeniu jest tak, ze procesor
zleca pewne
zadanie twaremu dyskowi. Nastepnie procesor czeka az twardy dysk
zrealizuje
te zadania. Gdy operacje na twardym dysku zostana zakonczone, procesor
wznawia obliczenia. Dlatego nie widzisz procesora obciazonego na 100%,
poniewaz
procesor nie wykonuje obliczen przez 100% czasu, tylko musi czekac na
zakonczenie operacji dyskowych.
Roznice w obciazeniu procesora sa spowodowane buforowaniem
systemowym.
Aby procesor nie musial dlugo czekac na operacje dyskowe, czesc danych
zostaje przechowywana w pamieci ram zamiast trafiac na dysk.
Algorytmy
buforowania bywaja bardzo skomplikowane, zaleza od cech dysku i
przeprowadzaja
rozne statystyki aby przechowywac w pamieci ram najbardziej potrzebne
dane.
Skutecznosc algorytmow buforujacych jest rozna. Jesli system dobrze
przewidzial
jakie dane Twoj program bedzie potrzebowal, to wszystko zadziala
szybciej niz
w przypadku gdy system przewidzi zle i bedzie trzeba czekac na
operacje dyskowe.
W sytuacji gdy wydajnosc jest naprawde bardzo wazna, mozna napisac
specjalny
serwer ktory bedzie lepiej wiedzial od systemu jakie dane sa
najbardziej potrzebne, a
wiec bedzie je lepiej buforowa no i wprost z pamieci RAM bedzie je
udostpenial
aplikacjom klienckim.
Pozdrawiam
-
9. Data: 2010-03-08 13:56:46
Temat: Re: Testy na WinXP
Od: Kris_gor <k...@p...onet.pl>
Marcin O. pisze:
> Teraz nie wiem w jaki sposob mam sprawdzic, ktory algorytm jest najszybszy -
> czasami ten sam algorytm trwa 30 sec a czasami 140 sec bez zadnych zmian w
> programie.
To może działaj na ram'ie? Wczytaj cały plik najpierw do pamięci (wiem,
wiem 1G to sporo), a czas mierz w swoim programie na początku i końcu
algorytmu, a program uruchamiaj z odpowiednim priorytetem.
Tak sobie dywaguję... ale ja nie jestem programistą, więc może nie tedy
droga...
Pozdrawiam
-
10. Data: 2010-03-12 07:32:46
Temat: Re: Testy na WinXP
Od: ZbyszekZ <z...@g...com>
On Mar 5, 9:59 am, "Marcin O." <k...@p...onet.pl> wrote:
> Czesc,
>
> Chce przeszukac duzy plik tekstowy (ponad 1GB), by okreslic liczbe danych
> slow w tym pliku, wiec napisalem sobiew tym celu maly programik (C++).
> Teraz chcialem poznac kwestie wydajnosci mojego programu z roznymi
> ustawieniami i tu zaczynaja sie schody.
> Jak uruchamiam sobie ten program pod WinXP nie wiem dlaczego ale system nie
> przydziela mu calej mocy obliczeniowej (zostawia sobie na Process
> bezczynnosci od 40% do 70%w zaleznosci od humoru, nawet dla tej samej
> konfiguracji) przez co nie moge wykonac testow porownawczych miedzy roznymi
> konfiguracjami bo program ma przydzielona rozna wartosc czasu procesora.
>
> Czy ktos moze to wyjasnic i jak to ominac??
>
Profiler, dokładniej to c++ profiler wpisz do google czy innej
wyszukiwarki.
Ja uzywałem komercyjnych rozwiązań (VTune, PurifyPlus) ale że było to
jakis czas temu to pewnie są nowsze narzędzia niekoniecznie płatne.
--
ZZ@private