eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › jaki wybrac jezyk?
Ilość wypowiedzi w tym wątku: 130

  • 121. Data: 2011-08-24 10:37:08
    Temat: Re: jaki wybrac jezyk?
    Od: Edek <e...@g...com>

    On 08/24/2011 11:45 AM, Michoo wrote:
    > W dniu 18.08.2011 02:42, m...@t...pl pisze:
    >> Java używa wszędzie new, nie można położyć statycznego obiektu na stosie.
    >> Mocno rozrzuca dane po przestrzeni adresowej. Słabo działa cache, a sama
    >> alokacja trochę czasu też zajmuje.
    > Java wymaga słowa kluczowego new. Afaik kompilator w sytuacji gdy widzi,
    > że zmienna nie wychodzi z zakresu umieszcza ją na stosie.
    >

    Z ciekawości, a kiedy widzi? Bo samo to, że w jednej metodzie referencja
    ginie niestety jeszcze nie znaczy, że nie ucieka.


  • 122. Data: 2011-08-24 11:45:21
    Temat: Re: jaki wybrac jezyk?
    Od: Michoo <m...@v...pl>

    W dniu 24.08.2011 12:37, Edek pisze:
    > On 08/24/2011 11:45 AM, Michoo wrote:
    >> Java wymaga słowa kluczowego new. Afaik kompilator w sytuacji gdy widzi,
    >> że zmienna nie wychodzi z zakresu umieszcza ją na stosie.
    >>
    >
    > Z ciekawości, a kiedy widzi? Bo samo to, że w jednej metodzie referencja
    > ginie niestety jeszcze nie znaczy, że nie ucieka.
    >
    Zmienne lokalne.

    --
    Pozdrawiam
    Michoo


  • 123. Data: 2011-08-24 11:55:23
    Temat: Re: jaki wybrac jezyk?
    Od: Maciej Sobczak <s...@g...com>

    On 24 Sie, 11:45, Michoo <m...@v...pl> wrote:

    > Java wymaga s owa kluczowego new. Afaik kompilator w sytuacji gdy widzi,
    > e zmienna nie wychodzi z zakresu umieszcza j na stosie.

    Jaka zmienna? int? Tego nie trzeba przydzielać przez new, to się od
    razu robi na stosie.
    A jeżeli to nie jest int (i nie jest to rekord składający się z samych
    intów), to w środku w konstruktorze ma pierdylion następnych newów,
    których już się tak nie zoptymalizuje. Czyli na pierdylion+1 newów
    optymalizacja pozwala pominąć ten 1.

    Pisząc "int" mam oczywiście na myśli każdy inny fundamentalny typ.

    Czy ktoś kiedyś zmierzył ile ta optymalizacja faktycznie wnosi?

    Tak na poważnie, to ja poproszę o String, który się mieści na stosie.
    Ten jeden przypadek chyba byłby najbardziej cenny, bo w sumie
    stringami operuje się najczęściej.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 124. Data: 2011-08-24 11:56:29
    Temat: Re: jaki wybrac jezyk?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-08-24, Michoo <m...@v...pl> wrote:
    > W dniu 24.08.2011 12:37, Edek pisze:
    >> On 08/24/2011 11:45 AM, Michoo wrote:
    >>> Java wymaga słowa kluczowego new. Afaik kompilator w sytuacji gdy widzi,
    >>> że zmienna nie wychodzi z zakresu umieszcza ją na stosie.
    >>>
    >>
    >> Z ciekawości, a kiedy widzi? Bo samo to, że w jednej metodzie referencja
    >> ginie niestety jeszcze nie znaczy, że nie ucieka.
    >>
    > Zmienne lokalne.

    I wierzysz że lokalność referencji do obiektu powoduje, że obiekt
    stworzony za pomocą new jest odkładany na stosie? Bo to mi nie wygląda
    na wiedzę, tylko na wiarę.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 125. Data: 2011-08-24 12:09:28
    Temat: Re: jaki wybrac jezyk?
    Od: Paweł Kierski <n...@p...net>

    W dniu 2011-08-24 13:55, Maciej Sobczak pisze:
    > On 24 Sie, 11:45, Michoo<m...@v...pl> wrote:
    >
    >> Java wymaga s owa kluczowego new. Afaik kompilator w sytuacji gdy widzi,
    >> e zmienna nie wychodzi z zakresu umieszcza j na stosie.
    >
    > Jaka zmienna? int? Tego nie trzeba przydzielać przez new, to się od
    > razu robi na stosie.
    > A jeżeli to nie jest int (i nie jest to rekord składający się z samych
    > intów), to w środku w konstruktorze ma pierdylion następnych newów,
    > których już się tak nie zoptymalizuje. Czyli na pierdylion+1 newów
    > optymalizacja pozwala pominąć ten 1.
    >
    > Pisząc "int" mam oczywiście na myśli każdy inny fundamentalny typ.

    W C# ładnie to rozróżniają pozwalając definiować typy wartościowe
    (struct) od referencyjnych (class). Wiadomo, że lokalna zmienna struct
    może być na pewno na stosie - ewentualnie i tak będzie kopia lub
    pakowanie w typ referencyjny.

    > Czy ktoś kiedyś zmierzył ile ta optymalizacja faktycznie wnosi?
    >
    > Tak na poważnie, to ja poproszę o String, który się mieści na stosie.
    > Ten jeden przypadek chyba byłby najbardziej cenny, bo w sumie
    > stringami operuje się najczęściej.

    Dobry alokator, który można dostroić do potrzeb też by pomógł. Zazwyczaj
    operuje się napisami w jakiś zakresach długości. Niestety czasem jest to
    1 do 7 znaków, czasem 42 do 107 znaków, a czasem 1 do 7 oraz 42 do 107.

    --
    Paweł Kierski
    n...@p...net


  • 126. Data: 2011-08-24 12:58:25
    Temat: Re: jaki wybrac jezyk?
    Od: Edek <e...@g...com>

    On 08/24/2011 01:45 PM, Michoo wrote:
    > W dniu 24.08.2011 12:37, Edek pisze:
    >> On 08/24/2011 11:45 AM, Michoo wrote:
    >>> Java wymaga słowa kluczowego new. Afaik kompilator w sytuacji gdy widzi,
    >>> że zmienna nie wychodzi z zakresu umieszcza ją na stosie.
    >>>
    >>
    >> Z ciekawości, a kiedy widzi? Bo samo to, że w jednej metodzie referencja
    >> ginie niestety jeszcze nie znaczy, że nie ucieka.
    >>
    > Zmienne lokalne.
    >

    void doSomething ()
    {
    o = new MyObject (); // nie nie, nie na stosie
    }

    bo MyObject () robi Register.register(this) albo
    rzuca wyjątek zawierający this.

    A jak już się zanalizuje sprawę głębiej, to faktycznie
    na stosie mogą być obiekty skompilowane, o których wiadomo,
    że nie uciekają. Dotyczy to wszelkiego obchodzenia się z this,
    non-static inner classes; jak już obiekt jest na stosie,
    to dalsze pytanie jest czy jego pola, jeżeli pochodzą z new
    też mogą być na stosie, czy nie. Jeżeli nie, to ta cała
    optymalizacja niewiele daje.

    No i jest kwestia, jak głęboko sięga to interprocedural,
    to było to moje "z ciekawości".

    Edek



  • 127. Data: 2011-08-24 21:11:25
    Temat: Re: jaki wybrac jezyk?
    Od: Maciej Sobczak <s...@g...com>

    On 24 Sie, 14:09, Paweł Kierski <n...@p...net> wrote:

    > W C# ładnie to rozróżniają pozwalając definiować typy wartościowe
    > (struct) od referencyjnych (class).

    Nie podoba mi się, bo związuje sposób "trzymania" czegoś z typem. Czy
    mam robić dwa różne-ale-takie-same typy jeśli raz potrzebuję coś
    trzymać przez wartość a innym razem przez referencję?
    A może mam robić dwa różne-ale-takie-same typy na wszelki wypadek, bo
    a nuż ktoś będzie chciał sobie coś tak zoptymalizować?

    > > Tak na poważnie, to ja poproszę o String, który się mieści na stosie.
    > > Ten jeden przypadek chyba byłby najbardziej cenny, bo w sumie
    > > stringami operuje się najczęściej.
    >
    > Dobry alokator, który można dostroić do potrzeb też by pomógł.

    Właśnie jest problem z tymi alokatorami, bo w sumie wiadomo, że można,
    ale w praktyce to dość ciężkawe narzędzie i dlatego mało kto to robi.
    Stringi na stosie mogą być out-of-the-box jako właściwość języka.
    Wtedy nie potrzeba dla niż *żadnego* alokatora. A jak chcesz to mieć
    na stercie, to robisz jawne new.
    Inna sprawa, że wtedy takich stringów nie da się łatwo rozciągać
    (append), ale skoro w wielu językach stringi są immutable i nikomu to
    nie przeszkadza (wtedy istnieje osobna klasa do obsługi rozciągliwych
    stringów), to można pójść właśnie w takim kierunku a największą zaletą
    jest natychmiastowe i bezproblemowe użycie czegoś, co jest
    równocześnie optymalne wydajnościowo.

    Dla przykładu, Ada ma takie stringi [*]:

    Msg : String := "Hello";

    Msg jest w całości na stosie. Wygląda łatwiej, niż konstrukcja ze
    strojonym alokatorem.

    [*] Pomijam tu fakt, że ta prawdziwa Ada miała raczej pantalony... :-D

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 128. Data: 2011-08-26 15:37:00
    Temat: Re: jaki wybrac jezyk?
    Od: m...@t...pl


    > Java wymaga słowa kluczowego new. Afaik kompilator w sytuacji gdy widzi,
    > że zmienna nie wychodzi z zakresu umieszcza ją na stosie.
    Osobiście nie wiem, tylko powtórzyłem. Często słyszałem to jako główny
    zarzut wydajnościowy Javy. Jeśli jest jak mówisz to bardzo miło ze strony
    kompilatora Javy.
    Pozdrawiam


    --
    Wysłano z serwisu OnetNiusy: http://niusy.onet.pl


  • 129. Data: 2011-09-20 23:12:19
    Temat: Re: jaki wybrac jezyk?
    Od: Edek <e...@g...com>

    On 08/18/2011 03:34 PM, Jordan Szubert wrote:
    > Dnia 18-08-2011 o 02:42:05 <m...@t...pl> napisał(a):
    >
    > [...]
    >> Nie wiem... dawno nie jestem na bieżąco z nowymi prockami i
    >> kompilatorami.
    >> Jak pisałem wyżej, bazowałem na eksperymencie - zmiana kodu i pomiar
    >> czasu.
    >
    > chodzi chyba o to, żebyś jeszcze poeksperymentował ze zmianą opcji
    > kompilatora i pomiarem czasu.
    >
    > [...]

    ... raczej w tym kierunku, co expression templates.

    Edek


  • 130. Data: 2011-09-23 20:28:47
    Temat: Re: jaki wybrac jezyk?
    Od: " " <k...@g...pl>

    m...@t...pl napisał(a):

    > pamięci niż rozmiar danych. Niektóre programy mogą unikać tych krytycznych
    > sytuacji i dlatego takie różnice w porównywaniu do C/C++. Program
    obliczeniowy
    > w Javie który przetwarza wielokrotnie te same dane w pętlach działa bardzo
    > szybko. Skąd wiem? Też z pomiarów.

    Ja kiedys sporo czasu (sumarycznie z miesiac-dwa) spedzilem w pracy nad
    optymalizowaniem dosc krotkiego algorytmu w Java, ktorego dlugi czas
    wykonania byl problemem w procesie produkcyjnym (chodzilo o wycene slynnych
    CDO, jakby ktos pytal ;-)). Udalo mi sie zbic czas pojedynczej wyceny do 1-2
    minut, i uznalem, ze to juz jest niezle, i ze ta Java wcale taka wolna nie
    jest.

    Potem zobaczylem biblioteke C++, ktora ten sam algorytm, na podobnej klasy
    sprzecie, wykonywala w 10-20s.

    Well.

    KK

    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

strony : 1 ... 12 . [ 13 ]


Szukaj w grupach

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: