-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Zbigniew Malec <a...@i...invalid>
Newsgroups: pl.comp.programming
Subject: Re: Skąd dokładny zegar w C pod Win XP/7 ?
Date: Mon, 9 May 2011 21:18:06 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 56
Message-ID: <1u0kelle70zmt.1a8m75nsk09zx$.dlg@40tude.net>
References: <iq71ht$q84$2@inews.gazeta.pl>
<131qyujfagg1$.1vjfkt1ng7lwq$.dlg@40tude.net>
<iq85vc$qp5$1@inews.gazeta.pl>
NNTP-Posting-Host: 89-75-68-72.dynamic.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1304968682 12008 89.75.68.72 (9 May 2011 19:18:02 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 9 May 2011 19:18:02 +0000 (UTC)
X-User: zbyszanna
User-Agent: 40tude_Dialog/2.0.15.1
Xref: news-archive.icm.edu.pl pl.comp.programming:190222
[ ukryj nagłówki ]On Mon, 9 May 2011 09:43:43 +0200, KrisB wrote:
> 1) Mam algorytm który będzie wykonywany dla danych rozmiaru max ~naście. Wykona się
to w czasie max kilku msek.
A to w takim razie do czego ci jest ta wiedza o sprawności algorytmu
potrzebna? Jeżeli to zawsze będą małe dane, to niezależnie od algorytmu*
czas wykonania będzie krótki. Ulepszanie algorytmów ma sens jedynie* w
przypadku, kiedy spodziewamy się dużej ilości danych, albo sama czynność
jest wykonywana bardzo często.
Jeżeli nie masz dobrych podstaw (problemu z wydajnością), to lepiej się za
takie optymalizacje nie brać i zobaczyć jak to się będzie faktycznie
zachowywało w realnej sytuacji i dopiero jak mamy pewność, że poprawa
algorytmu ma sens to się do niej bierzemy. Tutaj przydaje się profiler.
* w granicach rozsądku i z pominięciem sytuacji ekstremalnych oraz
bibliotek (program ma być tak szybki, jak tego oczekuje jego użytkownik,
ale biblioteka musi być tak szybka, jak oczekuje tego jej najbardziej
niecierpliwy użytkownik ;) ).
> 2) Co do tych tysięcy prób: a jak "odfiltrować" koszty samej obsługi tych tysięcy
prób ? Wywołanie / obsługa pętli / niemiarodajna
> zawartość cache tj. na ogół większość danych przy powtarzających się wywołaniach
już będzie w cache ?
To jest oczywiście dobre i ważne pytanie. Znowu zależy jaka dokładność
ciebie interesuje i co tak na prawdę chcesz mierzyć.
Narzut na pętlę nie będzie duży, natomiast ma tę zaletę, że koszt jego
(narzutu) jest przewidywalny. Jeżeli chcesz porównać dwa algorytmy, to taki
dodatkowy koszt prawdopodobnie nie będzie przeszkodą w interpretacji
wyników.
Jeżeli martwi ciebie zawartość cache, to znowu trzeba siebie zapytać, co
się tak na prawdę mierzy. Jeżeli chodzi o samą wydajność algorytmu, to czas
dostępu do pamięci nie powinien mieć znaczenia, bo nie wynika on z samej
konstrukcji algorytmu.
Jeżeli ten cache ci jednak przeszkadza, to oczywiście też da się to
rozwiązać, znowu zależy to od konkretnego zagadnienia.
Możesz posługiwać się np. danymi większymi niż cache i w ten sposób
zapewnić sobie, że cache właściwie nie będzie używany, możesz też np.
losować dane a potem odjąć od ogólnego wyniku czas wykonania takiej samej
ilości samych losowań (wtedy powinieneś dostać dość dobre przybliżenie
samego algorytmu).
W takich przypadkach oczywiście zawsze trzeba też uważać, żeby nam
kompilator nie wyoptymalizował z kodu kawałków, które chcemy mierzyć ;)
> PS. Jak pod Win XP/7 uczynić taki pomiar obiektywny ? Jak i jakie usługi wyłączyć ?
Mogę wyłączyć firewall, antywirusa, wszystkie
> możliwe procesy w msconfig, odłączę kom od sieci, ale to raczej mało. Jak zrobić
żeby win na czas pomiarów nie robił NIC dodatkowego
> a przynajmniej jak najmniej ??? (Na pewno rozumiecie)
Raczej się nie da, natomiast wykonując odpowiednio dużą ilość powtórzeń
wyeliminujesz w znacznej mierze znaczną ilość takich problemów.
Ps. tak jak napisał Paweł, zamiast ustalać ilość powtórzeń, lepiej ustalić
całkowity czas testu.
--
Pozdrawiam
Zbyszek Malec
Następne wpisy z tego wątku
- 10.05.11 06:57 Bronek Kozicki
- 10.05.11 07:08 Bronek Kozicki
- 10.05.11 11:38 Mariusz Marszałkowski
- 10.05.11 11:48 Paweł Kierski
- 10.05.11 21:52 Zbigniew Malec
- 12.05.11 12:36 Mariusz Marszałkowski
- 12.05.11 12:37 Mariusz Marszałkowski
- 14.05.11 12:19 Sasquatch
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-21 Warszawa => Key Account Manager IT <=
- 2025-02-21 Warszawa => Data Engineer (Tech Lead) <=
- 2025-02-21 Aliexpress zaczął oszukiwać na bezczelnego.
- 2025-02-21 Warszawa => System Architect (Java background) <=
- 2025-02-21 Kula w łeb
- 2025-02-21 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-21 Warszawa => Solution Architect (Java background) <=
- 2025-02-21 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-02-21 Pawel S
- 2025-02-21 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-02-21 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-21 Chrzanów => Programista NodeJS <=
- 2025-02-21 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-21 Warszawa => Administrator Systemów Windows IT <=
- 2025-02-21 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=