-
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
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
Najnowsze wątki
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=
- 2024-11-22 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=