eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaNowy polski procesorRe: Nowy polski procesor
  • Data: 2013-03-07 21:09:20
    Temat: Re: Nowy polski procesor
    Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 07.03.2013 00:33, Anerys wrote:
    >
    > Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości
    > news:kh88ul$sbc$1@mx1.internetia.pl...
    >> On 06.03.2013 19:53, Anerys wrote:
    >>
    >>> W ogóle jest jakaś dziwna tendencja chyba we wszystkim, czy prawie
    >>> wszystkim, że praktycznie identyczne, czy podobne programy, obrastają w
    >>> craz większy kod wynikowy, nie usprawiedliwiony np. dodawanymi
    >>> funkcjami.
    >>
    >> W końcu są "różne".
    >
    > Nie mówię, że nie...
    >
    >>
    >>> Różne kompilatory dla dokładnie takiego samego kodu
    >>> wejściowego produkują całkowicie różny w objętości kod.
    >>
    >> A to zależy od wielu opcji czasu kompilacji.
    >
    > Bezbajerowo. Jeszcze pod DOSem. TP 3 dawał ok. 30 kilku kB, TP7 już
    > poniżej 10.
    >
    >>
    >>> Weźmy z Pascala np. (darujcie "interpunkcję", ostatni raz rzeźbiłem 20
    >>> lat temu...)
    >>> program hello; (niektóre kompilatory OIDP pozwalają na pominięcie tej
    >>> deklaracji)
    >>> begin
    >>> writeln ('Dzien dobry');
    >>> end.
    >>> jeden kompilator dał 30-kilka kB kodu,
    >>
    >> Bardziej rozbudowana lub nie stripowana biblioteka.
    >
    > Tylko po co ona, gdy jedynym zadaniem programu było krok po kroku
    > wyrzucić kilkanaście znaków na ekran... w C64 schodziłęm poniżej 50
    > bajtów włącznie z danymi (fakt, skakałem do podprogramu... ale gdzieś
    > widziałem listing, który bezpśrednio dawał... i nie obrosło to w zbędny
    > kod. Ale to w C64 był mus, liczył się każdy bajt. I dobrze.
    >
    >>
    >>> inny ok. 7,
    >>
    >> Mniej rozbudowana (albo np wolniejsza) biblioteka. 30 kB to żaden
    >> rozmiar, więc w czym problem?
    >
    > Choćby w czasach, w których to robiłem, że taka różnica była istotna. A
    > jeśli program spokojnie może byc mały, to nie widzę powodów, aby był duży.
    >
    >>
    >>> A robiły dokładnie to samo. Zero dołączeń,
    >>
    >> a writeln to skąd się niby wzięło?
    >
    > Z treści programu. Nic nie było definiowane w treści przez include,
    > żadnej dyrektywy dołączającej, nic, poza tymi 4 liniami.
    >
    >>
    >>> zero innych
    >>> deklaracji, itp. a doklejały kilkadziesiąt kB ch.j wie czego, psu na
    >>> budę potrzebnego...
    >>
    >> A potem jak się trochę więcej napisało to nagle ten pierwszy tył o
    >> dodatkowe kilka kB kodu a ten drugi o kilkadziesiąt.
    >
    > Klepałem trochę, ale już zapomniałem szczegółów... tylko czemu
    > wspomniany przeze mnie Zdzich umiał się zachować i nie tył zanadto?

    Znasz różnicę pomiędzy PE a COM? Wiesz co to symbole debugowe? Przykłąd
    z pod linuxa:
    $ ls -lh ATmegaBOOT_644P.elf
    -rwxr-xr-x 1 michoo michoo 14K mar 6 23:47 ATmegaBOOT_644P.elf
    $ avr-size ATmegaBOOT_644P.elf
    text data bss dec hex filename
    1880 0 265 2145 861 ATmegaBOOT_644P.elf
    $ avr-strip ATmegaBOOT_644P.elf
    $ ls -lh ATmegaBOOT_644P.elf
    -rwxr-xr-x 1 michoo michoo 2,2K mar 7 11:48 ATmegaBOOT_644P.elf

    >
    >>> Jestem niemal pewien, że gdyby tu i ówdzie poobcinać fuzle, to programy
    >>> zrobiły by się mniejsze... tylko może kompilatory powinny rzetelniej
    >>> generować kod? Nie doklejać czegoś, co programowi nie jest potrzebne.
    >>
    >> Po grzyba ktoś ma optymalizować kompilator pod kątem minimalnego
    >> programu, który nic nie robi?
    >
    > Robi - wyświetla na ekranie "Dzien dobry" (bez ogonka, bo wtedy ich
    > prawie nie znano(1991))
    > Ja chcę od programu, aby mając tekst j.w., program zrobił:
    > Licząc od pierwszego do ostatniego znaku, pobrał je po kolei i wyrzucił
    > na ekran. Niech 100 bajtów kodu pobiera te znaki, drugie 100 wyprowadzi
    > na ekran, trzecie 100 utrzyma to w całości. Już nie będę aż tak skąpy.

    To czemu kazałeś mu wywołać funkcję biblioteki writeln, która +- robi
    właśnie to, ale pochodzi z biblioteki, ktora dodatkowo zawiera takie
    "bezsensowne" rzeczy jak:
    inicjalizacja stosu, przygotowanie obsługi wyjątków, inicjalizację
    alokatora, sam alokator, alokacja konsoli...?

    > Ale, żeby to nie było po 10 kB, bo co by te 10 kB robiło w swojej części
    > zadania... czy ile tego było... skoro setka poradziłą sobie równie
    > dobrze... to co robi pozostałe 9900 bajtów? Ja je chcę wyrzucić. Tylko
    > tyle.

    Głupia IKONA dla programu to np 10k. Po kiego grzyba pisać środowisko,
    które usunie z biblioteki "niepotrzebne" funkcje w tak nieistotnym
    przypadku jak "program, który nic nie robi" i rozmiarze 20k? Domagasz
    się, żeby ktoś dokonał masy zbędnej optymalizacji w imię czego?

    A jak chcesz rzeźbić to droga wolna - pisałem programy windowsowe,
    okienkowe z rozmiarem po skompilowaniu 512-1024B. MASM jest do tego
    bardzo wygodny.

    --
    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: