Goto page Previous 1, 2, 3, 4 ... 17, 18, 19 Next
Michoo
Guest
Tue Mar 05, 2013 5:29 pm
On 05.03.2013 07:48, Zbych wrote:
Quote:
Normalna firma to kupi za parę groszy (w porównaniu z licencją na rdzeń)
kompilator keila.
To ten w którym trzeba było oznaczać funkcje jako reentrant, bo inaczej
zarówno argumenty jak i zmienne pakował jako statyczne?
Quote:
A od niego to wielu programistów asemblerowych może
się uczyć optymalizacji kodu.
A to z większością kompilatorów tak jest.
--
Pozdrawiam
Michoo
Zbych
Guest
Tue Mar 05, 2013 7:59 pm
W dniu 05.03.2013 17:29, Michoo pisze:
Quote:
On 05.03.2013 07:48, Zbych wrote:
Normalna firma to kupi za parę groszy (w porównaniu z licencją na rdzeń)
kompilator keila.
To ten w którym trzeba było oznaczać funkcje jako reentrant, bo inaczej
zarówno argumenty jak i zmienne pakował jako statyczne?
A wolałbyś żeby od razu użył programowej emulacji stosu dla argumentów?
Quote:
A od niego to wielu programistów asemblerowych może
się uczyć optymalizacji kodu.
A to z większością kompilatorów tak jest.
W przypadku gcc czasem ciężko zauważyć.
Wojtek
Guest
Wed Mar 06, 2013 10:32 am
Quote:
Normalna firma to kupi za parę groszy (w porównaniu z licencją na rdzeń)
kompilator keila. A od niego to wielu programistów asemblerowych może się
uczyć optymalizacji kodu.
tak.... to ciekawe dlaczego jak piszę w asm to kod mam 1kB a po przepisaniu
na ci skompilowaniu mam 1,7kB i to po wielkich bojach z optymalizacją.....A
programista ASM ze mnie żaden.
Kompilator ma pare udanych implamantacji ale ogólnie też kulfony robi przy
generowaniu kodu.
--
wojtek
Anerys
Guest
Wed Mar 06, 2013 7:53 pm
Użytkownik "Wojtek" <wojtek@laaapppii.plll> napisał w wiadomości
news:kh72eg$ltj$1@news.task.gda.pl...
Quote:
tak.... to ciekawe dlaczego jak piszę w asm to kod mam 1kB a po
przepisaniu na ci skompilowaniu mam 1,7kB i to po wielkich bojach z
optymalizacją.....A programista ASM ze mnie żaden.
Kompilator ma pare udanych implamantacji ale ogólnie też kulfony robi przy
generowaniu kodu.
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. Różne
kompilatory dla dokładnie takiego samego kodu wejściowego produkują
całkowicie różny w objętości kod.
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, inny ok. 7, dla ciekawości powiedzmy,
że "przeportowałem" to na mocno niszowego "Zdzicha" (dostępny w necie, dla
DOS) kompilat był poniżej 100B (tak, bajtów, nie kilo, czy mega...). A
robiły dokładnie to samo. Zero dołączeń, zero innych deklaracji, itp. a
doklejały kilkadziesiąt kB ch.j wie czego, psu na budę potrzebnego...
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. A jak
zdążyłem się zorientować, pamięć w naszych projektach (ja się nie zajmuję,
nie to zdrowie... Ale może kiedyś?)

) bywa towarem deficytowym...?
.... no dobra... nic nie mówiłem...
--
Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.
Sebastian Biały
Guest
Wed Mar 06, 2013 8:26 pm
On 2013-03-06 19:53, Anerys wrote:
Quote:
writeln ('Dzien dobry');
[...]
Nie doklejać czegoś, co programowi nie jest potrzebne.
Przecież dokleileś I/O. Zapewne z cała duperelowatością obsługi różnych
typów, printowania floatów itp. Pisz ostrożnie a zobaczysz że nic złego
się nie ssa samoczynnie. Kompilatory nie są aż takie złe.
Michoo
Guest
Wed Mar 06, 2013 9:20 pm
On 06.03.2013 19:53, Anerys wrote:
Quote:
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".
Quote:
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.
Quote:
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.
Quote:
inny ok. 7,
Mniej rozbudowana (albo np wolniejsza) biblioteka. 30 kB to żaden
rozmiar, więc w czym problem?
Quote:
dla ciekawości
powiedzmy, że "przeportowałem" to na mocno niszowego "Zdzicha" (dostępny
w necie, dla DOS) kompilat był poniżej 100B (tak, bajtów, nie kilo, czy
mega...).
Stripowana biblioteka, brak nagłówka PE (pliki .exe zawierają w sobie
m.i. plik com piszący, że "ten program jest pod windę", brak
importowanych bibliotek, etc...
Quote:
A robiły dokładnie to samo. Zero dołączeń,
a writeln to skąd się niby wzięło?
Quote:
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.
Quote:
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?
--
Pozdrawiam
Michoo
Marek Borowski
Guest
Wed Mar 06, 2013 9:34 pm
On 2013-03-06 21:20, Michoo wrote:
Quote:
On 06.03.2013 19:53, Anerys wrote:
Mniej rozbudowana (albo np wolniejsza) biblioteka. 30 kB to żaden
rozmiar, więc w czym problem?
W tym ze do zapewnienie dzialania zgodnie z wymaganiami wystarczy 1kB.
Niektorzy po prostu lubia miec rzeczy "szyte na miare" a nie na
wszystkie mozliwe okazje.
Quote:
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?
j.w.
Generalnie inzynieria programowania jest niewolnikiem ekomomi i pojecia
"dobry" "optymalny" program sie zdewaluowaly. Teraz dobry program to ten
na ktorym da sie jak najwieciej zarobic w jak najktorszym czasie przy
spelnieniu wymagan specyfikacji. A kiedys dobry program to taki ktory
zrobi to co jest w specyfikacji w jak najktorszym czasie i zajmnie jak
najmniej miejsca. Ni huhu nie pasuje do wspolczenej wszechobecnej
komercji gdzie TTM jest najwazniejszym parametrem.
Pozdrawiam
Marek
Grzegorz Niemirowski
Guest
Wed Mar 06, 2013 10:34 pm
Marek Borowski <marek@a.borowski.com> napisał(a):
Quote:
W tym ze do zapewnienie dzialania zgodnie z wymaganiami wystarczy 1kB.
Niektorzy po prostu lubia miec rzeczy "szyte na miare" a nie na wszystkie
mozliwe okazje.
Na miarę czego? Komputera z 4 GB RAMu? Co za różnica ile zajmie hello world?
Może powiesz, że są mikrokontrolery z 1 kB RAMu albo mniej. Tak, dlatego
pytam co to za miara. Ale teraz tych kostek jest mnóstwo, są tanie i nie ma
sensu walczyć o każdy bajt. Poczytaj sobie
http://thedailywtf.com/Comments/That-Wouldve-Been-an-Option-Too.aspx
Quote:
j.w.
Generalnie inzynieria programowania jest niewolnikiem ekomomi i pojecia
"dobry" "optymalny" program sie zdewaluowaly. Teraz dobry program to ten
na ktorym da sie jak najwieciej zarobic w jak najktorszym czasie przy
spelnieniu wymagan specyfikacji. A kiedys dobry program to taki ktory
zrobi to co jest w specyfikacji w jak najktorszym czasie i zajmnie jak
najmniej miejsca. Ni huhu nie pasuje do wspolczenej wszechobecnej komercji
gdzie TTM jest najwazniejszym parametrem.
Pozdrawiam
Marek
A ten najkrótszy czas i najmniejsze miejsce to nie była ekonomia? Z jakiego
powodu, jeśli nie ekonomicznego, ten program musiał być mały i szybki? Teraz
ekonomia działa tak samo, tylko sprzęt jest trochę inny. Zobacz sobie jakie
możliwości ma Raspberry Pi i przy jakiej cenie.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express:
http://www.grzegorz.net/oe/
Uptime: 19 days, 12 hours, 2 minutes and 14 seconds
Anerys
Guest
Thu Mar 07, 2013 12:33 am
Użytkownik "Michoo" <michoo_news@vp.pl> napisał w wiadomości
news:kh88ul$sbc$1@mx1.internetia.pl...
Quote:
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...
Quote:
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.
Quote:
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.
Quote:
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.
Quote:
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.
Quote:
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?
Quote:
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. 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.
--
Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.
Anerys
Guest
Thu Mar 07, 2013 12:48 am
Użytkownik "Marek Borowski" <marek@a.borowski.com> napisał w wiadomości
news:kh899i$1fs$1@news.task.gda.pl...
Quote:
On 2013-03-06 21:20, Michoo wrote:
On 06.03.2013 19:53, Anerys wrote:
Mniej rozbudowana (albo np wolniejsza) biblioteka. 30 kB to żaden
rozmiar, więc w czym problem?
W tym ze do zapewnienie dzialania zgodnie z wymaganiami wystarczy 1kB.
Niektorzy po prostu lubia miec rzeczy "szyte na miare" a nie na wszystkie
mozliwe okazje.
Trafnie to ująłeś. Program ma KONKRETNE zadanie. Dajmy na to, ma drapać się
po dupie. Nie potrzebuję więc sprawdzania, czy przypadkiem nie mruga oczami,
czy nie rosną mu białe włosy, nie potrzebuję dołączania biblioteki machania
nogami. Program ma tylko i wyłącznie drapać się po dupie, a co za tym idzie,
zawierać tylko i wyłącznie procedury drapania się po dupie (i zintegrowane,
albo w oddzielnym pliku, dane do drapania się po dupie, czyli dupa jest tu -
współrzędne x,y,z, razem śjakieś powiedzmy, 12 bajtów, zakładając hojne
32-bitowe określanie pozycji każdej ze współrzędnych, punkt początkowy
x1,y1,z1, punkt końcowy x2,y2,z2, a cały ruch drapania jest prostym ruchem
między początkiem a końcem. Przez wyrzucenie wszystkiego niepotrzebnego chcę
osiągnąć, by program, opierając się możliwie o najmniejszą możliwą ilość
pamięci, przez brak konieczności zajmowania się zbędnymi kawałkami kodu, był
w stanie w czasie rzeczywistym przeliczać ruch ręki do drapania się po dupie
tak, aby nie musia korzystać z predefiniowanych tablic określających kolejne
pozycje drapaka. W razie czego pozwalam sobie jedynie na pętlę
spowalniającą, jeśli ruch byłby za szybki. Oraz prostą procedurę
sprawdzającą, czy ciąg między początkiem i końcem nie wychodzi poza dupę.
Zgrubnie szacuję taki program na 300-500 bajtów.
Quote:
Po grzyba ktoś ma optymalizować kompilator pod kątem minimalnego
programu, który nic nie robi?
j.w.
Generalnie inzynieria programowania jest niewolnikiem ekomomi i pojecia
"dobry" "optymalny" program sie zdewaluowaly. Teraz dobry program to ten
Ja już od dawna tak to widzę.
Quote:
na ktorym da sie jak najwieciej zarobic w jak najktorszym czasie przy
spelnieniu wymagan specyfikacji. A kiedys dobry program to taki ktory
zrobi to co jest w specyfikacji w jak najktorszym czasie i zajmnie jak
Nie inaczej.
Quote:
najmniej miejsca. Ni huhu nie pasuje do wspolczenej wszechobecnej komercji
gdzie TTM jest najwazniejszym parametrem.
Hmm... nie wiem, w czym był pisany Norton Commander, ale na XT 4.77/8
startował poniżej sekundy. GW-Basic (ok. 60kB) startował natychmiast. A z
dyskietki przez czas potrzebny do odczytania kodu programu.
Dzisiaj... mam maszynę 3 GHz dwurdzeniową, Total Commander startuje
dłużej...
--
Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.
Bezznaczenia
Guest
Thu Mar 07, 2013 3:12 am
Quote:
Hmm... nie wiem, w czym był pisany Norton Commander, ale na XT 4.77/8
startował poniżej sekundy. GW-Basic (ok. 60kB) startował natychmiast. A
z dyskietki przez czas potrzebny do odczytania kodu programu.
Dzisiaj... mam maszynę 3 GHz dwurdzeniową, Total Commander startuje
dłużej...
Bo system taki jak windows powinien zostac napisany od nowa nie jako
nakladka nakladki na nakladke.
Marek
Guest
Thu Mar 07, 2013 8:25 am
On Thu, 7 Mar 2013 00:33:05 +0100, "Anerys" <spam.nie.jest@spoko.pl>
wrote:
Quote:
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.
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...
Szczytem optymalizacji byłoby gdyby treść do wyświetlenia byłaby
jednocześnie kodem wykonywalnym wykonującym wyświetlenie samego
siebie. Rozmiar kodu=rozmiar tekstu do wyświetlenia

.
--
Marek
Michal Schulz
Guest
Thu Mar 07, 2013 8:27 am
Am 04.03.13 16:00, schrieb sundayman:
Quote:
A ja kochałem 6502. Tam było jakoś niewiele rozkazów, i tak się to
przyjemnie pisało z główki, że hej !
Jakieś 25 lat temu
Masz zabawke:
http://www.visual6502.org/
zapinio
Guest
Thu Mar 07, 2013 9:12 am
Oczywiscie masz rację.
Świat zwariował.
Możesz podglądać temperature w piecu bedąc 1000km od domu (po co ?).
Możesz znać położenie zasłon w oknach (po co ?).
Przez komórke możesz zaprogramować otwieranie drzwi do garażu (po co ?)
itd.
Jest tu analogia do telewizji.
Masz 200 programów. Część w super jakości HD.
Jest tylko mały drobiazg.
Zupełnie nie ma czego oglądać.
Dlatego każdemu młodemu człowiekowi , po 30 latach pracy w
elektronice/automatyce/informatyce odradzam wybranie tego zawodu.
DJ
Guest
Thu Mar 07, 2013 10:12 am
On 2013-03-07 00:33:05 +0100, "Anerys" <spam.nie.jest@spoko.pl> said:
Quote:
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.
Producenci widzą powód - sprzedawać większe pamięci, większe HDD, proce
z szyną danych 64bit, w końcu musi być jakieś uzasadnienie dla
"rozwoju".
--
DJ
PS. przy odpisywaniu na priv usun antyspamowy wpis z adresu
Goto page Previous 1, 2, 3, 4 ... 17, 18, 19 Next