-
Data: 2014-10-12 12:53:04
Temat: Re: Algorytmiczny problem lamera... :-)
Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 12.10.2014 02:31, M.M. wrote:
> On Sunday, October 12, 2014 1:17:57 AM UTC+2, bartekltg wrote:
>> Ale po co, skoro masz iterator. On się rozwija w przypadku vector
>> do gołego wskaźnika, a nie trzeba uprawiać partyzantki*).
>> GCC przy 03 i wersję z indeksem przerabia na tak samo szybką,
>> na O2 widzę kilka procent narzutu.
>> Test, pomijając szczegóły, taki:
>> [...]
>> Ogolna różnica między 2 a 3 wynika z rozwijania pętli.
> U mnie na testach byl narzut wiekszy. QVector i QList dzialaly 2-3 razy
> dluzej niz tablica statyczna.
Rzeczywiście, QVectro + indeksy coś się nie chce optymalizować.
Na O2 w tamtym teście działał w tej samej kategorii co wszyscy,
ale na O3 już prawie dwa razy wolniej. Na iteratorach
nie było problemu, biega tak samo jak vector czy goła tablica.
Jednym słowem, jeśli nie bawisz się interfejsem, używaj standardowego
vectora.
> Tak, wiem ze tablice statyczne kompilatory
> moga lepiej zopytmalizowac niz wskaznik, ale jednak nie powinny, poniewaz
> wskaznik to prawie to samo co tablica. Mialem tez ciut bardziej
> skomplikowane obliczenia, mniej/wiecej:
> QVector< QVector<typ_prosty> >
> Rozmiar wewnętrznego 30 liczb int/float
> Rozmiar zewnętrznego 200tys.
>
> Operacje mniej/wiecej takie:
>
> for( i=0 ; i<200tys ; i++ ) {
> for( j=0 ; j<30 && vector[i][j] >= min[j] && vector[i][j] >= min[j] ; j++ )
> ;
> sum += j==30 ? 1 : -1;
> }
> print( sum );
Nie kompiluje się ;-)
Jeśli zawsze i wszędzie masz 30, może array<int,30> coś poprawi.
Albo nawet adresować wszytko liniowo (skoro nie boisz się
bawić wskaźnikami, i to nie powinno być problemem.)
Poza tym,
vector[i][j] >= min[j] && vector[i][j] >= min[j]
To imho dwa razy to samo.
Czysto estetycznie, może drugiego fora zastąpić while,
(albo nawet std::find_if, w końcu szukasz pierwszego
elementu nie spełniającego pewnego kryterium), początkowo
patrząc na ten kod 'nie widziałem' tego, że for kręci pustą
instrukcją.
To się cudownie równoległa;-)
pzdr
bartekltg
Następne wpisy z tego wątku
- 12.10.14 13:39 M.M.
- 12.10.14 17:25 bartekltg
- 12.10.14 19:53 M.M.
- 12.10.14 21:03 bartekltg
- 12.10.14 22:03 M.M.
- 24.10.14 10:55 m...@g...com
Najnowsze wątki z tej grupy
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=