-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: " M.M." <m...@N...gazeta.pl>
Newsgroups: pl.comp.programming
Subject: Re: dalsza optymalizacja
Date: Sun, 1 Apr 2012 17:37:09 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 107
Message-ID: <jla3o5$hv7$1@inews.gazeta.pl>
References: <jl73ie$b6f$1@inews.gazeta.pl> <jl9aaf$326$1@inews.gazeta.pl>
<jl9al3$ee7$1@inews.gazeta.pl> <jl9dfl$a80$1@inews.gazeta.pl>
<jl9e7f$epj$1@node2.news.atman.pl> <jl9ftm$j00$1@inews.gazeta.pl>
<jl9h5r$i0o$1@node2.news.atman.pl> <jl9ju9$o28$1@inews.gazeta.pl>
<jl9nc4$oha$1@node2.news.atman.pl> <jl9pbd$s10$1@inews.gazeta.pl>
<jl9pjl$qts$1@node2.news.atman.pl> <jl9udd$jka$1@inews.gazeta.pl>
<jla0s1$37m$1@node2.news.atman.pl>
NNTP-Posting-Host: localhost
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1333301829 18407 172.20.26.236 (1 Apr 2012 17:37:09 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Sun, 1 Apr 2012 17:37:09 +0000 (UTC)
X-User: mariotti
X-Forwarded-For: 89.229.34.123
X-Remote-IP: localhost
Xref: news-archive.icm.edu.pl pl.comp.programming:196514
[ ukryj nagłówki ]bartekltg <b...@g...com> napisał(a):
> W dniu 2012-04-01 18:06, M.M. pisze:
> > bartekltg<b...@g...com> napisaĹ(a):
> >
> >> To nie dawaj zĹych przykĹadĂłw ;)
> > Oryginalny przykĹad jest zbyt zagmatwany, chciaĹem uproĹciÄ jakoĹ :)
> >
> >>> W meritum chodzilo o to czy proste operacje arytmetyczne (jak
> >>> np. x = x + 1) na typie double sa istotnie wolniejsze niz na
> >>> typie int, albo long.
> >>
> >> WyciÄ ĹeĹ test odpowiadajÄ Â cy na to pytanie.
> > Nie wiem jak ten test naleĹźy czytaÄ.
> > int:1.682000 i2f:0.000000 double:1.766000 f2i:0.000000
> > int:1.688000 i2f:0.000000 double:1.794000 f2i:0.000000
> > int:1.696000 i2f:0.000000 double:1.773000 f2i:0.000000
> > int:1.691000 i2f:0.000000 double:1.765000 f2i:0.000000
> >
> > CzyĹźby pierwsza kolumna to czas inkrementacji na typie int,
> > a trzecia kolumna na typie double? To by sugerowaĹo Ĺźe
>
> Tak.
>
> > nie warto siÄ bawiÄ, bo jeszcze dochodzi czas pÄtli, indeksowania i
> > dostÄpu do pamiÄci.
>
> Nie, to czas caĹego kodu 'testowego'. PÄtla, random etc.
Ok, czyli sie nie oplaca. Wyglada na to ze dzisiejsze procesory
robia inkrementacje na typie double prawie tak samo szybko jak
na typie int. Moj kod pomiarowy na dole.
> I mówię na serio. Jeśli w kodzie masz takie losowanko
> 'na którym klocku zrobić operację', średnio operacji
> na klocek jest dużo i są nieżależne, to nie rób tego
> w ten sposób. wygwenerpowanie 1000 liczb z penwgo rozkładu,
> aby z góry wiedzieć, ile operacji wykonać jest znacznie
> szybsze niż milion prostych randomów.
Zgadza się.
W oryginalnym kodzie mam coś innego. Mam dane zero-jedynkowe i buduję z nich
układ równań normalnych. Dane mam upakowane. Upakowanie polega
na tym że zamiast zer i jedynek trzymam numery pozycji na których
są jedynki. Dane są trudne, mają znamiona funkcji losowej, dlatego
w przykładzie dałem rand. Mniej/więcej coś takiego:
for( int i=0 ; i<N ; i++ )
for( int j=i ; j<N ; j++ )
macierz[ jedynki[i] * rozmiar_wiersza + jedynki[j] ] ++;
Pozdrawiam
Kod pomiarowy:
#include <cstdio>
#include <cstdlib>
#include <ctime>
#define BASE_SIZE (1000)
#define BASE_ITS (200000000)
int test_int() {
static int data[BASE_SIZE];
for( int i=0 ; i<BASE_ITS ; i++ )
data[rand()%BASE_SIZE] ++ ;
int max = 0;
for( int i=0 ; i<BASE_SIZE ; i++ )
if( max < data[i] )
max = data[i];
return max;
}
double test_double() {
static double data[BASE_SIZE];
for( int i=0 ; i<BASE_ITS ; i++ )
data[rand()%BASE_SIZE] ++ ;
double max = 0;
for( int i=0 ; i<BASE_SIZE ; i++ )
if( max < data[i] )
max = data[i];
return max;
}
int main(int argc, char *argv[]) {
clockid_t start;
srand(123);
start = clock();
int max_i = test_int();
printf("max = %d test int = %d\n" , max_i ,
(int)((clock()-start)/(CLOCKS_PER_SEC/1000)) );
start = clock();
double max_d = test_double();
printf("max = %lf test double = %d\n", (double)max_d,
(int)((clock()-start)/(CLOCKS_PER_SEC/1000)) );
return 0;
}
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 01.04.12 19:51 bartekltg
- 01.04.12 20:12 bartekltg
- 01.04.12 20:50
- 01.04.12 20:53 M.M.
- 01.04.12 21:57 bartekltg
- 01.04.12 22:09 M.M.
- 01.04.12 22:29 M.M.
- 01.04.12 22:44 bartekltg
- 01.04.12 22:49 bartekltg
- 01.04.12 22:50
- 01.04.12 23:56 M.M.
- 01.04.12 23:59 bartekltg
- 02.04.12 00:11 M.M.
- 02.04.12 00:13 M.M.
- 02.04.12 01:20 bartekltg
Najnowsze wątki z tej grupy
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-07 Jaki silikon lub może klej?
- 2025-02-07 Gdańsk => iOS Developer (Swift experience) <=
- 2025-02-07 Warszawa => Starszy Programista C <=
- 2025-02-07 Niby to nie sąd ale kooorwa tak to w sądach dziś wygląda?
- 2025-02-06 PROGRAM DOPŁAT DO AUT ELEKTRYCZNYCH TO ABSURD. ZA ŚRODKI Z KPO KUPIMY NIEMIECKIE I CHIŃSKIE AUTA
- 2025-02-05 ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-07 Smar do video
- 2025-02-06 Litowe baterie AA Li/FeS2 a alkaliczne
- 2025-02-07 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-07 Warszawa => System Architect (Java background) <=
- 2025-02-07 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-07 Warszawa => Solution Architect (Java background) <=
- 2025-02-07 Gliwice => Ekspert IT (obszar systemów sieciowych) <=