-
Data: 2012-06-26 14:31:57
Temat: Re: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 25.06.2012 23:37, AK wrote:
> Użytkownik "Michoo" <m...@v...pl> napisał:
> Nie ucz ojca dzieci robic (dlaczego kurcze Wam mlodym _ciagle_ sie od lat
> wydaje, ze pozjadaliscie wszytskie rozumy/umiejetnosci
Tu nie chodzi o umiejętności tylko o to, że zderzasz rzadkie przypadki
krańcowe i o jakieś 10 lat przeterminowane praktyki C++ z najnowszą
wersją Javy/C#. Ja zaczynałem naukę C++ na bcb5 12 lat temu. Bcb6, który
wyszedł 10 lat temu był już naprawdę fajnym środowiskiem.
Genryki w C# są od jakiś 7 lat, w javie od 8.
> w stosunku
> do nas "matuzalemow;) ?).
Skoro przez tyle lat nie byłeś w stanie opanować podstawy C (wyliczanie
wartości wyrażeń) to mam silne podstawy sądzić, że twój staż nie idzie w
parze z wiedzą.
> Tylko powiedz mi Musiu dlaczego w C++ musze sie tyle nameczyc
Nikt Cię nie zmusza do męczenia się w C++. Ja się męczyłem w Javie.
> (no i jeszcze ten PIMPL niezbedny)
To jest JEDNA z podanych przeze mnie możliwości. Nie jest niezbędna. W
c++ możesz zresztą użyć alokatora opartego o GC. Tylko po co?
> jesli w Javie mam to ad hoc
W javie to działa inaczej - brak semantyki referencji. Masz raczej const
wskaźnik ze wszelkimi ograniczeniami.
GC ma JEDNĄ zaletę w porównaniu z RC - sprząta cykle. A cykliczne
powiązania między obiektami są po pierwsze rzadkie, po drugie niektóre
GC sobie z cyklami tez specjalnie nie radzą (patrz python).
Do tego gc zachęca do niechlujstwa. I nagle jest problem gdy biblioteka
przy próbie wczytania 100MB pliku potrzebuje 12GB ramu(bo zajęcie 1GB
przy obróbce 10MB to było "jeszcze normalne, teraz ramu jest dużo").
> Przeciez wtedy pisze niby w C++, ale _tak naprawde w Javie_ :)
Raczej pisząc w Javie piszesz w brutalnie wykastrowanym C++.
>
> Zwlaszcza, ze shared_ptr jest "atomowy" rowniez w sensie wielowatkowosci,
> a wiec naprawde _cholernie_ kosztowny w stosunku do jednowatkowosci.
> Tyle, ze ja sobie "mutexowania" w shared_ptr wylaczyc nie moge
> nawet gdybym w dokumentacji duzymi bukwami napisal, ze
> program/modul jest jednowatkowy.
Jakiego, kwa, muteksowania? Dobra implementacja ma użyte CAS,
prawdopodobnie w formie lock cmpxchg - cały koszt przy odpowiedniej
optymlizacji po stronie twórców biblioteki to blokada magistrali na
jeden dodatkowy transfer.
> Przecie smart_ptr to szablon, a wiec macro a wiec kompilator g.. wie o
> kontekscie uzycia (nie umie zoptymalizowac).
Kłamstwo.
> W Javie/.NET refs sa _wewnetrzym wbudowanym podstawowym mechanizmem_
> obslugi obiektow, wiec Java/.NET sobie moze to o wiele lepiej
Teoretycznie może i cały czas mnie dziwi, że mimo, że JIT powinien być
świetnym rozwiązaniem (kilka lat temu naprawdę tej technologii
kibicowałem) i dawać znaczącego boosta to ciągle się tak nie dzieje.
> (i czymi
> to) zoptymalizowac
Za to nie może zoptymalizować innych rzeczy. No i robi głównie
mikrooptymalizacje a nie makrooptymalizację.
>
> PS: i nieprawda jest, ze mam wtedy "deterministyczne" zwalnianie zasobow.
> Mamy tak/podobnie jak w Javie/C# (smieciarka), czyli wolnienie gdy
> ref_count
> zjedzie do 0.
Jeżeli masz porządnie napisaną aplikację to jesteś w stanie wyznaczyć
punkty w których stan powinien być stabilny i dzięki temu łatwo
zweryfikować ewentualne wycieki.
> (No ale o cykle to juz musze niestety zadbac/pilnowac sam:).
Najdłużej debugowaną przeze mnie pod względem wycieków aplikacją był
kodserwera w pythonie, który ciekł kilka GB na tydzień. Wszystko właśnie
z powodu cykli.
>
>> Spieprzyć kod można w dowolnym języku.
>
> Czasem sam jezyk (C++) "pieprzy"" kod.
Java też robi to notorycznie. Ja wolę już "pieprzenie" na modłę C++.
>
>> P.S.
>> Przypominam, że miałeś udowodnić jak to kolejność ewaluacji operatorów
>> w C/C++ jest dowolna.
>
> a nie chce mi sie teraz:) Moze jutro ?
Ani jutro ani pojutrze nic nie udowodnisz, bo po portu nie masz racji.
> I badz precyzyjny: pisalem ze "kolejnosc evaluacji operatorow" _o tym
> samym priotrytecie_
> jest dowolna.
> Nawiasy w tym przypadku sa opuszczane juz na etapie (umownego) parsingu.
Cały czas mieszasz Example 6 z Example 7 w 5.1.2.3 standardu C. Jeszcze
nie zdecydowałem, czy wbrew temu co lansujesz mimo tylu lat pracy po
prostu NIE ZNASZ C, czy trollujesz.
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 26.06.12 15:07 AK
- 26.06.12 15:24 Roman W
- 26.06.12 16:01 Edek Pienkowski
- 26.06.12 18:41 Michoo
- 26.06.12 20:58 A.L.
- 26.06.12 23:00 AK
- 27.06.12 09:43 Maciej Sobczak
- 27.06.12 11:11 Andrzej Jarzabek
- 27.06.12 11:14 Andrzej Jarzabek
- 27.06.12 11:21 Edek Pienkowski
- 27.06.12 13:02 Andrzej Jarzabek
- 27.06.12 13:12 Roman W
- 27.06.12 13:19 Edek Pienkowski
- 27.06.12 13:49 AK
- 27.06.12 13:57 Edek Pienkowski
Najnowsze wątki z tej grupy
- 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
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-11 Wyważanie kół rowerowych
- 2024-11-11 Kosz, gdzie??
- 2024-11-11 Coraz mniej ludzi robi prawo jazdy
- 2024-11-11 Opole => SAP HANA Cloud Dev / Data Engineer <=
- 2024-11-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-11-11 Lublin => Senior PHP Developer <=
- 2024-11-11 Marki => Senior PHP Symfony Developer <=
- 2024-11-11 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-11 Gliwice => Specjalista ds. public relations <=
- 2024-11-11 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-11 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-11-11 Warszawa => Sales Development Representative (in German) <=
- 2024-11-11 Marsz niepodległości
- 2024-11-08 Belka
- 2024-11-09 pierdolec na punkcie psa