eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › pryszcze...
Ilość wypowiedzi w tym wątku: 82

  • 61. Data: 2014-01-16 06:59:50
    Temat: Re: pryszcze...
    Od: Adam Klobukowski <a...@g...com>

    On Wednesday, 15 January 2014 15:09:42 UTC+1, Maciej Sobczak wrote:
    > W dniu środa, 15 stycznia 2014 14:01:40 UTC+1 użytkownik Adam Klobukowski napisał:
    >
    >
    >
    > > Nowoczesne silniki JS działające w trybie JIT [...]
    >
    > > Dzięki temu, potencjalnie może wygenerować lepszy kod niż kompilator języka
    statycznego który ma skończony czas na wygenerowanie kodu i nie jest w stanie poznać
    harakterystyki jego użycia.
    >
    >
    >
    > Etam. Po pierwsze, nie jest prawdą, że kompilator ma skończony czas na
    wygenerowanie kodu. Nikt mu tego czasu nie ogranicza, może sobie kompilować ile tylko
    chce. To właśnie JIT musi działać w (powiedzmy) "czasie rzczywistym" i nie może
    pozwolić sobie na spędzanie dowolnie długiego czasu na czymkolwiek, bo jest to
    aktywność dodatkowa w stosunku do tego, co chciał programista.

    SKończony, w sensie że robi to tylko raz i nigdy nie będzie mógł poprawić tego co
    zrobił. VM może to robić w 'nieskończoność'.

    > Po drugie, nie jest prawdą, że JIT może analizować dane w run-time do podjęcia
    takich decyzji (albo lepszych), jak kompilator, bo dane w run-time mogą się zmienić.
    Np. skoro przez ostatnią godzinę indeks tablicy mieścił się w dozwolonym zakresie, to
    co, JIT może podjąć decyzję, że nie trzeba już sprawdzać tego zakresu? Nie może
    takiej decyzji podjąć. Natomiast w systemie statycznym można tak zrobić i we
    wspomnianej tu Adzie jest to zupełnie rutynowe działanie.

    Może, może. Po prostu generuje wersję funkcji dla zadanych parametrów. Jak przyjdą
    inne, to musi wygenerować nowa wersję.

    > Te dwie sprawy to dwa główne mity nt. JIT.

    To nie są mity, takie rzeczy robinp. V8.

    AdamK


  • 62. Data: 2014-01-16 08:48:04
    Temat: Re: pryszcze...
    Od: Andrzej Jarzabek <a...@g...com>

    On 15/01/2014 15:24, A.L. wrote:
    > On Wed, 15 Jan 2014 08:03:30 +0100, Paweł Kierski <n...@p...net>
    > wrote:
    >>
    >> Statyczna kontrola typów daje duże pole do popisu dla optymalizacji
    >> przez kompilator. Vide - rozwijanie szablonów w C++.
    >
    > Szablony w C++ to zwykla makro. Mic nei ma wspolnego z systemem typow

    No jednak ma o tyle, że generuje statyczne typy i funkcje korzystające z
    nich. Tak wygenerowany wektor intów czy sortowanie intów kompilator może
    lepiej zoptymalizować niż "wektor czegokolwiek" czy "sortowanie
    czegokolwiek".


  • 63. Data: 2014-01-16 08:51:12
    Temat: Re: pryszcze...
    Od: Andrzej Jarzabek <a...@g...com>

    On 16/01/2014 05:59, Adam Klobukowski wrote:
    >
    > Może, może. Po prostu generuje wersję funkcji dla zadanych
    > parametrów. Jak przyjdą inne, to musi wygenerować nowa wersję.

    Musi jednak sprawdzić, czy parametry są takie czy inne, to też powoduje
    narzut.


  • 64. Data: 2014-01-16 09:51:47
    Temat: Re: pryszcze...
    Od: Maciej Sobczak <s...@g...com>

    W dniu czwartek, 16 stycznia 2014 06:59:50 UTC+1 użytkownik Adam Klobukowski napisał:

    > > Etam. Po pierwsze, nie jest prawdą, że kompilator ma skończony czas na
    wygenerowanie kodu.

    > SKończony, w sensie że robi to tylko raz i nigdy nie będzie mógł poprawić tego co
    zrobił. VM może to robić w 'nieskończoność'.

    VM ma skończone zasoby (w szczególności pamięć), więc nie może w nieskończoność
    kumulować stanu. A biorąc pod uwage fakt, że budżet CPU na takie działania też jest
    ograniczony, to ewentualna optymalizacja będzie miała efekt dopiero po jakimś czasie.
    W przypadku kompilacji statycznej efekt jest od chwili startu a potem 100% CPU jest
    dostępne dla aplikacji.

    > > Po drugie, nie jest prawdą, że JIT może analizować dane w run-time do podjęcia
    takich decyzji (albo lepszych), jak kompilator, bo dane w run-time mogą się zmienić.
    Np. skoro przez ostatnią godzinę indeks tablicy mieścił się w dozwolonym zakresie, to
    co, JIT może podjąć decyzję, że nie trzeba już sprawdzać tego zakresu? Nie może
    takiej decyzji podjąć.

    > Może, może. Po prostu generuje wersję funkcji dla zadanych parametrów. Jak przyjdą
    inne, to musi wygenerować nowa wersję.

    Rozumiem. Czyli nie musi sprawdzać zakresu indeksów, wystarczy że zamiast tego będzie
    sprawdzał parametry funkcji i ewentualnie potem jednak znowu sprawdzi zakres
    indeksów. Przy okazji zużywając jakiś procent CPU na zastanawianie się nad tym.

    Nie przekonałeś mnie.

    > To nie są mity, takie rzeczy robinp. V8.

    Fajna, taka "sportowa" nazwa. :-)

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


  • 65. Data: 2014-01-16 12:40:22
    Temat: Re: pryszcze...
    Od: firr <p...@g...com>

    > Problem z językiem C polega na tym, że no niby ma statyczny system typów, ale tak
    kiepski, że nie da się go na tym "dalszym poziomie" wykorzystać ani do optymalizacji
    ani do wykrywania potencjalnych błędów.

    jakich błedów na przykład, i jakiej optymalizacji
    na przyklad?

    (co do bledów to sie nie spotkałem, co do optymalizacji tez nie wiem o czym mowa

    - a warto by pogadac konkretnie, zwlaszcza o
    optymalizacji


  • 66. Data: 2014-01-17 01:24:31
    Temat: Re: pryszcze...
    Od: A.L. <a...@a...com>

    On Thu, 16 Jan 2014 07:48:04 +0000, Andrzej Jarzabek
    <a...@g...com> wrote:

    >On 15/01/2014 15:24, A.L. wrote:
    >> On Wed, 15 Jan 2014 08:03:30 +0100, Paweł Kierski <n...@p...net>
    >> wrote:
    >>>
    >>> Statyczna kontrola typów daje duże pole do popisu dla optymalizacji
    >>> przez kompilator. Vide - rozwijanie szablonów w C++.
    >>
    >> Szablony w C++ to zwykla makro. Mic nei ma wspolnego z systemem typow
    >
    >No jednak ma o tyle, że generuje statyczne typy i funkcje korzystające z
    >nich. Tak wygenerowany wektor intów czy sortowanie intów kompilator może
    >lepiej zoptymalizować niż "wektor czegokolwiek" czy "sortowanie
    >czegokolwiek".

    Owszem. WIE o typach. Co nei zmienia faktu ze jest makro

    A.L.


  • 67. Data: 2014-01-17 01:31:35
    Temat: Re: pryszcze...
    Od: bartekltg <b...@g...com>

    On 2014-01-17 01:24, A.L. wrote:
    > On Thu, 16 Jan 2014 07:48:04 +0000, Andrzej Jarzabek
    > <a...@g...com> wrote:
    >
    >> On 15/01/2014 15:24, A.L. wrote:
    >>> On Wed, 15 Jan 2014 08:03:30 +0100, Paweł Kierski <n...@p...net>
    >>> wrote:
    >>>>
    >>>> Statyczna kontrola typów daje duże pole do popisu dla optymalizacji
    >>>> przez kompilator. Vide - rozwijanie szablonów w C++.
    >>>
    >>> Szablony w C++ to zwykla makro. Mic nei ma wspolnego z systemem typow
    >>
    >> No jednak ma o tyle, że generuje statyczne typy i funkcje korzystające z
    >> nich. Tak wygenerowany wektor intów czy sortowanie intów kompilator może
    >> lepiej zoptymalizować niż "wektor czegokolwiek" czy "sortowanie
    >> czegokolwiek".
    >
    > Owszem. WIE o typach. Co nei zmienia faktu ze jest makro

    Uważasz, zę programowanie generyczne to po prostu makra,
    czy, że w c++ czegoś ważnego brakuje? Jeśli to drugie, to czego?

    pzdr
    bartekltg



  • 68. Data: 2014-01-17 02:46:29
    Temat: Re: pryszcze...
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2014-01-17, bartekltg <b...@g...com> wrote:
    > On 2014-01-17 01:24, A.L. wrote:
    >> On Thu, 16 Jan 2014 07:48:04 +0000, Andrzej Jarzabek
    >> <a...@g...com> wrote:
    >>
    >>> On 15/01/2014 15:24, A.L. wrote:
    >>>> On Wed, 15 Jan 2014 08:03:30 +0100, Paweł Kierski <n...@p...net>
    >>>> wrote:
    >>>>>
    >>>>> Statyczna kontrola typów daje duże pole do popisu dla optymalizacji
    >>>>> przez kompilator. Vide - rozwijanie szablonów w C++.
    >>>>
    >>>> Szablony w C++ to zwykla makro. Mic nei ma wspolnego z systemem typow
    >>>
    >>> No jednak ma o tyle, że generuje statyczne typy i funkcje korzystające z
    >>> nich. Tak wygenerowany wektor intów czy sortowanie intów kompilator może
    >>> lepiej zoptymalizować niż "wektor czegokolwiek" czy "sortowanie
    >>> czegokolwiek".
    >>
    >> Owszem. WIE o typach. Co nei zmienia faktu ze jest makro
    >
    > Uważasz, zę programowanie generyczne to po prostu makra,
    > czy, że w c++ czegoś ważnego brakuje? Jeśli to drugie, to czego?

    Zapewne ani jedno, ani drugie.

    Makro to konstrukcja nie operująca na *typach*, tylko na *kodzie*
    (na drzewie wyprowadzenia w przypadku Lispa, na tekście w przypadku
    preprocesora C/C++). Szablony w C++ nie pracują z typami, a jedynie
    generują kawałki kodu wstawiając pewne adnotacje (typy mianowicie)
    w odpowiednich miejscach.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 69. Data: 2014-01-17 03:00:12
    Temat: Re: pryszcze...
    Od: bartekltg <b...@g...com>

    On 2014-01-17 02:46, Stachu 'Dozzie' K. wrote:
    > On 2014-01-17, bartekltg <b...@g...com> wrote:
    >> On 2014-01-17 01:24, A.L. wrote:
    >>> On Thu, 16 Jan 2014 07:48:04 +0000, Andrzej Jarzabek
    >>> <a...@g...com> wrote:
    >>>
    >>>> On 15/01/2014 15:24, A.L. wrote:
    >>>>> On Wed, 15 Jan 2014 08:03:30 +0100, Paweł Kierski <n...@p...net>
    >>>>> wrote:
    >>>>>>
    >>>>>> Statyczna kontrola typów daje duże pole do popisu dla optymalizacji
    >>>>>> przez kompilator. Vide - rozwijanie szablonów w C++.
    >>>>>
    >>>>> Szablony w C++ to zwykla makro. Mic nei ma wspolnego z systemem typow
    >>>>
    >>>> No jednak ma o tyle, że generuje statyczne typy i funkcje korzystające z
    >>>> nich. Tak wygenerowany wektor intów czy sortowanie intów kompilator może
    >>>> lepiej zoptymalizować niż "wektor czegokolwiek" czy "sortowanie
    >>>> czegokolwiek".
    >>>
    >>> Owszem. WIE o typach. Co nei zmienia faktu ze jest makro
    >>
    >> Uważasz, zę programowanie generyczne to po prostu makra,
    >> czy, że w c++ czegoś ważnego brakuje? Jeśli to drugie, to czego?
    >
    > Zapewne ani jedno, ani drugie.
    >
    > Makro to konstrukcja nie operująca na *typach*, tylko na *kodzie*
    > (na drzewie wyprowadzenia w przypadku Lispa, na tekście w przypadku
    > preprocesora C/C++). Szablony w C++ nie pracują z typami, a jedynie
    > generują kawałki kodu wstawiając pewne adnotacje (typy mianowicie)
    > w odpowiednich miejscach.

    Czyli pytania nadal jest aktualne:

    Skoro więc nie pierwsze, to czego brakuje w takim razie szablonom
    z c++, aby stały się prawdziwą realizacją paradygmatu
    programowania generycznego?

    pzdr
    bartekltg




  • 70. Data: 2014-01-17 03:09:48
    Temat: Re: pryszcze...
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2014-01-17, bartekltg <b...@g...com> wrote:
    >>> Uważasz, zę programowanie generyczne to po prostu makra,
    >>> czy, że w c++ czegoś ważnego brakuje? Jeśli to drugie, to czego?
    >>
    >> Zapewne ani jedno, ani drugie.
    >>
    >> Makro to konstrukcja nie operująca na *typach*, tylko na *kodzie*
    >> (na drzewie wyprowadzenia w przypadku Lispa, na tekście w przypadku
    >> preprocesora C/C++). Szablony w C++ nie pracują z typami, a jedynie
    >> generują kawałki kodu wstawiając pewne adnotacje (typy mianowicie)
    >> w odpowiednich miejscach.
    >
    > Czyli pytania nadal jest aktualne:
    >
    > Skoro więc nie pierwsze, to czego brakuje w takim razie szablonom
    > z c++, aby stały się prawdziwą realizacją paradygmatu
    > programowania generycznego?

    Błąd: pytanie nie jest "nadal aktualne", tylko "nadal bezzasadne".
    Programowanie generyczne można uprawiać i na systemie makr.

    --
    Secunia non olet.
    Stanislaw Klekot

strony : 1 ... 6 . [ 7 ] . 8 . 9


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: