-
Data: 2012-01-30 10:45:34
Temat: Re: asm jako jezyk elitarny
Od: " M.M." <m...@g...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Borneq <b...@a...hidden.pl> napisał(a):
> W dniu 2012-01-30 02:25, M.M. pisze:
> > Ostatnio wzialem pod lupe pewien programik do generowania lasow drzew
> > regresyjnych. Program jest napisany bardzo intuicyjnie, np. kazdy
> > rekord z pliku jest alokowany przez new i sa listy rekordow (a nie tablice
> > liniowe). Program uzywa (chyba) dobrego algorytmu ale ma kiepska
> > implementacje. Nie ma zoptymalizowanej pamieci cache i nie jest
> > zrownoleglony ani nie ma jednej globalnej struktury danych przyjaznej
> > dla wszystkich procedur, tylko robi konwersje.
>
> Czy alokowanie przez new rzeczywiście tak nieefektywne? W C# i Javie
> chyba nie można się bez tego obyć, tylko że tam new jest szybsze.
> Listy rekordów chyba są dość szybkie
Problem polega na czym innym. Sama alokacja przy pomocy new nie musi
byc problemem, wszystko zalezy od tego jak czesto alokujemy w stosunku
do innych operacji.
Chodzi o to, ze mam liste rekordow, zwykla struktura:
struct NodeList {
void *dane;
NodeList *next;
};
Wczytuje dane z pliku i za kazdym razem mam dwa wywolania new, jedno
dla utworzenia wezla, a drugie dla utworzenia danych. Potem lista
jest przegladana. Wyglada na to ze new podaje w miare mozliwosci
sekwencyjne adresy i pierwszy przeglad trwa krotko. Potem jedna lista
jest rozbijana na dwie listy. Do kazdej trafiaja przypadkowe elementy.
Takich podzialow robie wiecej, w koncu wszystkie listy sa skladane z
powrotem w jedna i z powrotem sa dzielone. Po okolo dwoch-trzech takich
przebiegach algorytmu uzyskuje praktycznie losowy dostep do pamieci i
to jest glownym problemem. Po upakowaniu tego w sekwencyjne adresy i
zrownoleglenie (na listach ciezko zrownoleglac) przyspieszenie jest
ogromne, przewiduje ze okolo 200 razy.
Pozdrawiam.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 30.01.12 13:16 Jacek
- 30.01.12 13:36
- 30.01.12 18:03 Karol Y
- 30.01.12 18:15 Karol Y
- 30.01.12 19:58 Michal Schulz
- 31.01.12 00:34 bartekltg
- 31.01.12 01:03 M.M.
- 31.01.12 01:08 M.M.
- 31.01.12 01:41 A.L.
- 31.01.12 02:34 M.M.
- 31.01.12 02:49 bartekltg
- 31.01.12 02:51 bartekltg
- 31.01.12 03:01 M.M.
- 31.01.12 03:09 bartekltg
- 31.01.12 03:25 M.M.
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) <=