-
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
Następne wpisy z tego wątku
- 07.03.13 22:22 Adam Dybkowski
- 07.03.13 22:47 Michał Baszyński
- 07.03.13 22:58 Marek Borowski
- 07.03.13 23:18 sundayman
- 07.03.13 23:32 Jarosław Sokołowski
- 07.03.13 23:37 Jarosław Sokołowski
- 07.03.13 23:54 Michoo
- 07.03.13 23:57 Michoo
- 08.03.13 00:07 RoMan Mandziejewicz
- 08.03.13 02:09 sundayman
- 08.03.13 08:50 JDX
- 08.03.13 08:57 Michal Schulz
- 08.03.13 09:00 JDX
- 08.03.13 11:25 Piotr Gałka
- 08.03.13 11:50 Marek Borowski
Najnowsze wątki z tej grupy
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
Najnowsze wątki
- 2025-01-23 5G Apokalipsa - nie tylko dla tutejszych przeżuwaczy podpiczników
- 2025-01-23 wodor
- 2025-01-23 Zawór grzybkowy - jaki producent
- 2025-01-23 Warszawa => Expert IT Recruiter 360 <=
- 2025-01-23 Warszawa => Key Account Manager IT <=
- 2025-01-23 Citi Handlowy promocja na kartę kredytową
- 2025-01-22 Gdańsk => System Architect (Java background) <=
- 2025-01-22 Katowice => Senior Field Sales (system ERP) <=
- 2025-01-22 Warszawa => Java Developer <=
- 2025-01-22 pokolenie Z
- 2025-01-22 Wyświtlacz ramki cyfrowej
- 2025-01-22 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-01-22 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2025-01-22 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-01-22 oferta na ubezpieczenie OC życie prywatne