eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › era asemblera
Ilość wypowiedzi w tym wątku: 2

  • 1. Data: 2014-07-05 13:08:17
    Temat: era asemblera
    Od: firr <p...@g...com>

    z tego co obserwuje jesli ktos chce pisac
    zoptymalizowane programy (np w c) to bez
    asemblera nie mozna sie obejsc
    (Pytanie czy to twierdzenie jest do końca scisłe,
    ale chyba jest) - w obliczu sse (moze ze skalarnym asmem byloby nieco inaczje) i tego
    ze obecne optymalizatory
    sa pod tym katem beznadziejne (znowu, moze gdyby
    jezyk c byl rozszerzony sytuacje uleglaby pewnej
    zmianie, nie jestem do konca pewien) sprawa ma sie
    po prostu tak ze trzeba pisac w asmie i "nie ma bata"
    9przez asma moge tez rozumiec intrinsiki ale podobno nawet to wspolczesne kompilatory
    robia dosyc kiepsko)

    slowem kompilatory podobno (jak to powtarzaja co poniektorzy) optymalizuja dobrze kod
    tylko ze wychodzi na to ze moze caly za wyjatkiem hotspotow ;/ [uzywam tego slowa bo
    jakos poki co nie znam lepszego] bo jak
    przychodzi co do czego okazuje sie ze takiego hotspota trzeba przepisac w asmie i
    nawet nie ma tu mowy o zadnej konkurencji, sciganiu sie z kompilatorem - kompilator
    po prostu lezy - takie sa moje
    doswiadczenia [i wbrew temu co mowia liczni internetowi zamulacze przepisywanie
    hotspotow w asmie moze dzis bardziej oplacalne (jesli komus zalezy na szybkosci kodu)
    niz kiedys]

    (sa to optymistyczne 'wiesci' (jesli to mozna nazwac wiesciami))




  • 2. Data: 2014-07-06 18:25:56
    Temat: Re: era asemblera
    Od: "Bogdan (bogdro)" <b...@p...gazeta.pl>

    W dniu 05.07.2014 13:08, firr pisze:
    > z tego co obserwuje jesli ktos chce pisac
    > zoptymalizowane programy (np w c) to bez
    > asemblera nie mozna sie obejsc
    > (Pytanie czy to twierdzenie jest do końca scisłe,
    > ale chyba jest) - w obliczu sse (moze ze skalarnym asmem byloby nieco inaczje) i
    tego ze obecne optymalizatory
    > sa pod tym katem beznadziejne (znowu, moze gdyby
    > jezyk c byl rozszerzony sytuacje uleglaby pewnej
    > zmianie, nie jestem do konca pewien) sprawa ma sie
    > po prostu tak ze trzeba pisac w asmie i "nie ma bata"
    > 9przez asma moge tez rozumiec intrinsiki ale podobno nawet to wspolczesne
    kompilatory robia dosyc kiepsko)
    >
    > slowem kompilatory podobno (jak to powtarzaja co poniektorzy) optymalizuja dobrze
    kod tylko ze wychodzi na to ze moze caly za wyjatkiem hotspotow ;/ [uzywam tego slowa
    bo jakos poki co nie znam lepszego] bo jak
    > przychodzi co do czego okazuje sie ze takiego hotspota trzeba przepisac w asmie i
    nawet nie ma tu mowy o zadnej konkurencji, sciganiu sie z kompilatorem - kompilator
    po prostu lezy - takie sa moje
    > doswiadczenia [i wbrew temu co mowia liczni internetowi zamulacze przepisywanie
    hotspotow w asmie moze dzis bardziej oplacalne (jesli komus zalezy na szybkosci kodu)
    niz kiedys]
    >
    > (sa to optymistyczne 'wiesci' (jesli to mozna nazwac wiesciami))

    Różnie z tym bywa.
    Np. taki GCC ma opcje tuningujące kod wynikowy już pod najnowsze lub
    prawie najnowsze procesory i potrafi korzystać z SSE czy innych
    technologii, które są obce tym kompilatorom C, które zatrzymały się na
    386 lub 686 (w sensie operacji skalarnych, bez MMX).
    Przy często używanych operacjach, które kompilatory już umieją
    optymalizować, może być ciężko je prześcignąć.
    Ale kompilatory mogą sobie gorzej radzić w "intensywnych
    obliczeniowo" fragmentach kodu, a poza tym np. biblioteki matematyczne
    mogą nie być "gotowe" na optymalizacje czy używanie SSE.
    Kompilatory mogą sobie też gorzej radzić z optymalizacjami na
    poziomie całego programu (choć GCC też ma jakieś opcje z tym
    związane), typu "przez cały żywot programu rejestr X będzie trzymał
    moją stałą Y, aby był do niej szybki dostęp").
    Czy da się prześcignąć kompilator? Sądzę, że tak. Może nie zawsze i
    wszędzie, ale w pewnych sytuacjach według mnie jest to możliwe. W
    końcu kompilator ma kompilować różne programy, a nie tylko ten nasz
    jedyny, a zestaw optymalizacji dla jednej sytuacji może nie podziałać
    dobrze w innej.
    To wszystko też z raczej zasłyszanych rzeczy. Sam mam niewielkie
    doświadczenie w porównywaniu programów C z asmem, ale pamiętam
    mgliście jakąś historię, gdzie były pisane jakieś programy numeryczne,
    chyba po milion iteracji i programy w C działały w "czasach
    obiadowych" (tzn. można było sobie uruchomić program, ugotować obiad,
    zjeść go, wrócić i może był wynik :) ), a podobne programy w
    asemblerze kończyły pracę w czasie rzędu pojedynczych minut.
    W skrócie: to, co da się wycisnąć, zależy od:
    - kompilatora,
    - człowieka,
    - konkretnego kawałka kodu.
    Jeśli czujesz, że Twój kod działa nie dość szybko w punkcie, w którym
    nie da się go już bardziej zoptymalizować w języku wyższego poziomu,
    spróbuj ten kawałek przepisać na asma, resztę pozostaw kompilatorowi
    do optymalizacji.
    No i kolejność operacji:
    - implementujemy działający kod,
    - wybieramy lepsze algorytmy (np. sortowania),
    - optymalizujemy.


    --
    Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS)
    Kurs asemblera x86 (DOS, GNU/Linux): http://bogdro.ciki.me
    Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
    www.Xiph.org www.TorProject.org Soft(EN): http://bogdro.ciki.me/soft

strony : [ 1 ]


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: