eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingNie mieszczę się w tym garniturku część 2: Java i parametry in/outRe: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: