blue
Guest
Fri Sep 24, 2004 10:39 am
witam
jak w bascomie zoptymalizować kod ?
--
grzegorz feel the power of slackware
This e-mail was composed of 100% recycled bits
Paweł K
Guest
Fri Sep 24, 2004 10:45 am
Quote:
jak w bascomie zoptymalizować kod ?
w ustawieniach jest cos tam,
ale z doswiadczenia wiem ze na 1000 linijek kodu
30kb kodu wynikowego po zaznaczeniu optymalizacji
kod wynikowy zmniejszyl sie od 26 bajtow

)
--
--
Best regards
K@pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------
Pablo C
Guest
Fri Sep 24, 2004 10:58 am
ta optymalizacja co jest w opcjach to jest do d...
ja to bym się skłaniał ku przemyśleniu programu i kilku eksperymentach.
sprawdźcie sami różnicę w wielkości kodu wynikowego:
if x > 10 and y < 20 and z = 11 then
...
end if
oraz
if x > 10 then
if y < 20 then
if z = 11 then
...
end if
end if
end if
PC
Plumpi
Guest
Fri Sep 24, 2004 11:11 am
Quote:
jak w bascomie zoptymalizować kod ?
Tak samo jak w każdym innym języku programowania - napisać go w odpowiedni
sposób tzn. używać odwołań do procedur, podprogramów zamiast pisać
wielkokrotnie procedury np. odczytu pamięci czy zegara lub obsługi urządzeń
należy tworzyć bloki wykonalne do których będziemy skakać Call, Goto, Gosub,
Function. Wykonywać podprogramy dla wielu zmiennych w pętlach For Next
najlepiej jeszcze jak zmienne są tworzone jako tablice zmiennych, a nie
oddzielne zmienne. Można używać jednej zmiennej do przesyłania wyników pracy
programu, podprogramów lub obliczeń zamiast tworzyć ich całą masę dla każdej
danej. Tworzyć tylko te zmienne, które są niezbędne i takiej wielkości jaką
potrzebujemy. Rozkazy, które są zbyt duże w kodzie wynikowym Bascoma można
zastąpić fragmentem Assemblera.
--
Jacek "Plumpi"
plumpixjr@wp.pl
Usuń iksa - zabezpieczenie antyspamowe
badworm
Guest
Fri Sep 24, 2004 3:21 pm
Dnia 2004-09-24 13:39, Użytkownik blue napisał:
Quote:
jak w bascomie zoptymalizować kod ?
Porównać czy użycie innego polecenia pełniącego taką samą(lub bardzo
zbliżoną) funkcję. Np. jeśli jest potrzeba umieszczenia kursora na
początku wiersza a wyświetlacz jest jednoliniowy to można użyć polecenia
Locate lub Home. Zajmują one różną ilość pamięci i czasami odzyskane w
ten sposób kilkanaście bajtów przesądzi o konieczności użycia procka z
większą ilością pamięci.
--
Pozdrawiam Bad Worm badworm{"a" w kolku}post[punkt]pl
GG# 2400455 ICQ# 320399066
"Dziwny jest ten świat..."
Tnijcie cytaty i sygnaturki!
ziel
Guest
Sat Sep 25, 2004 8:59 pm
On Behalf Of blue
Quote:
jak w bascomie zoptymalizować kod ?
A pod jakim kątem?
- wielkości kodu
- szybkości działania
- minimalizacji zużycia RAM
- niezawodności *)
- łączności lub rozłączności powyższych
pzdr
Artur
*) w szczególności dotyczy pętli oczekiwania,
ochrony danych które pozornie nie są używane, itd.
--
Archiwum grupy:
http://niusy.onet.pl/pl.misc.elektronika
blue
Guest
Mon Sep 27, 2004 6:22 am
ziel wrote:
Quote:
On Behalf Of blue
jak w bascomie zoptymalizować kod ?
A pod jakim kątem?
- wielkości kodu
- szybkości działania
- minimalizacji zużycia RAM
- niezawodności *)
- łączności lub rozłączności powyższych
głownie chodzi mi o zoptymalizowanie pod kątem wielkości kodu.
zrobiłem układ zegar pcf8583 + termometr DS1821(bez miejsc dziesiętnych) na
AT90S2313 i jak bym nie brał wychodzi mi w bascom'ie ponad dopuszczalną
granicę
--
grzegorz feel the power of slackware
This e-mail was composed of 100% recycled bits
Konrad
Guest
Mon Sep 27, 2004 9:12 pm
Quote:
A pod jakim kątem?
- wielkości kodu
- szybkości działania
- minimalizacji zużycia RAM
- niezawodności *)
- łączności lub rozłączności powyższych
głownie chodzi mi o zoptymalizowanie pod kątem wielkości kodu.
zrobiłem układ zegar pcf8583 + termometr DS1821(bez miejsc dziesiętnych)
na
AT90S2313 i jak bym nie brał wychodzi mi w bascom'ie ponad dopuszczalną
granicę
Zrób, tak aby funkcje takie jak: 1WREAD, 1WWRITE, 1WRESET, I2C... nie
powtarzały się, czyli np. poprzez GOTO. Ponadto jeżeli masz jakieś części
programu, które się powtarzają to też zrobić GOTO i tylko raz te instrukcje
umieść w programie. Kiedyś też robiłem coś takiego i się udało. Powodzenia.
Konrad
ziel
Guest
Mon Sep 27, 2004 9:46 pm
On Behalf Of blue
Quote:
głownie chodzi mi o zoptymalizowanie pod kątem wielkości kodu.
zrobiłem układ zegar pcf8583 + termometr DS1821(bez miejsc
dziesiętnych) na
AT90S2313 i jak bym nie brał wychodzi mi w bascom'ie ponad dopuszczalną
granicę
Mieści się w 2kB.
pzdr
Artur
PS
Piszę o :
-odczyt z PCF8583
-odczyt z DS1821
-wyświetlenie wyniku na LCD z kontrolerem HDcoś tam.
--
Archiwum grupy:
http://niusy.onet.pl/pl.misc.elektronika
blue
Guest
Tue Sep 28, 2004 4:56 am
ziel wrote:
Quote:
On Behalf Of blue
głownie chodzi mi o zoptymalizowanie pod kątem wielkości kodu.
zrobiłem układ zegar pcf8583 + termometr DS1821(bez miejsc
dziesiętnych) na
AT90S2313 i jak bym nie brał wychodzi mi w bascom'ie ponad dopuszczalną
granicę
Mieści się w 2kB.
pzdr
Artur
PS
Piszę o :
-odczyt z PCF8583
-odczyt z DS1821
-wyświetlenie wyniku na LCD z kontrolerem HDcoś tam.
możesz podzielić się kodem ?
--
grzegorz feel the power of slackware
This e-mail was composed of 100% recycled bits
ziel
Guest
Tue Sep 28, 2004 6:38 am
On Behalf Of blue
Quote:
-odczyt z PCF8583
-odczyt z DS1821
-wyświetlenie wyniku na LCD z kontrolerem HDcoś tam.
możesz podzielić się kodem ?
Poszło na prv.
Report : RTC_I_DS
Date : 09-28-2004
Time : 09:26:15
Compiler : BASCOM-AVR LIBRARY V 1.11.7.4
Processor : 90S2313
SRAM : 80 hex
EEPROM : 80 hex
ROMSIZE : 800 hex
ROMIMAGE : 68A hex -> Will fit into ROM
ROMIMAGE : 1674 dec
FLASH USED : 81 %
--
Archiwum grupy:
http://niusy.onet.pl/pl.misc.elektronika