Forum: Mikrocontroller und Digitale Elektronik Bascom Compiler Geschwindigkeit


von Jürgen C (Gast)


Lesenswert?

Hallo,
ich programmiere mit Bascom 1.11.8.2.
Leider dauert das compilieren für eine Programmgröße von ca.
9000 Byte etwa 70 Sekunden. Da mein Programm noch erheblich
größer werden wird, und diese Zeit schon jetzt sehr unangenehm ist,
würde mich interresieren, wie man den Compiliervorgang beschleunigen
kann (ausser einem Schnelleren PC).
LIB Files kann ich nicht verwenden, da meine Programmteile nur in
Basic vorliegen.
Kennt einer einen direkten Vergleich zum GCC im bezug auf die
Compiliergeschwindigkeit. Wenn dieser erheblich schneller ist,
würde ich vieleicht noch auf C umsteigen.

viele Grüße

Jürgen

von André K. (andre-)


Lesenswert?

70 Sekunden?? Ich bastel gerade an einem Programm, das gerade so auf den
Atmega88 passt und kann das ganze innerhalb von 6 Sekunden compilieren,
obwohl mein PC mit einem XP 2500+ wohl auch nicht mehr aktuellster
Stand ist.

Darf ich fragen, wie die Eckdaten deines PCs so aussehen? Diese Zeit
ist schon extrem ungewoehnlich - auch fuer Bascom.

Beste Gruesse

von Marc M. (bytewood) Benutzerseite


Lesenswert?

Nimm die Codeoptimierung raus.

von André K. (andre-)


Lesenswert?

Das duerfte effektiv leider wenig bringen, zumal die standardmaessig
schon aus ist, wenn ich nicht irre. Bei 70 Sekunden machen 5 mehr oder
weniger einfach nichts mehr aus.

Wenn es so extrem langsam compiliert, tippe ich eher auf einen arg
langsamen PC. Ob das mit C dann viel besser wird, weiss ich nicht. Kann
es mir aber nur schwer vorstellen, da der Compiler bei C ja eher mehr
"nachdenkt".

Beste Gruesse,
André

von Jürgen C (Gast)


Lesenswert?

Hallo André,
Pentium 266MHz, 64Mb Ram.
Delphi 5 braucht für mehrere KB Programmgröße auf diesem Rechner
auch nur einige Sekunden.
Vieleicht denken die Compiler auch nur zu langsam.

Ich hatte so ein Problem auch schon einmal mit einer Fakturierungs-
software:
Programm 1 braucht zum einlesen von 200k Artikeldatensätzen
24h, kostete 3k Euro
Programm 2 braucht für die "gleiche Arbeit" 10min, kostete 1k Euro.
Gleiche Arbeit in Anführungszeichen, da ich nicht weis, ob es die
Gleiche ist, nur das Ergebnis war für mich in das Gleiche.

viele Grüße

Jürgen

von RAM (Gast)


Lesenswert?

Onlinevirenscanner aktiv?

von Jürgen C (Gast)


Lesenswert?

Hallo,
ich habe es einmal mit und einmal ohne Codeoptimierung versucht und
konnte keinen messbaren Unterschied feststellen.
Messmittel: Uhr mit Sekundenanzeige, Augen, Finger, Gehirn


Der Mega88 hat 8K Flash, das ist auch etwa meine Programmgröße.
6 Sekunden wären super, was hast du für einen PC André ?


Jürgen

von Frank (Gast)


Lesenswert?

Versuchs statt mit BASCON mal mit FastAVR. Das hats bei mir auch noch
auf nem uralten Thinkpad mit 133MHz noch prima getan und was rauskommt
ist auch noch um Längen schneller als das, was BASCOM zusammencomiliert
hat. Zusätzlich bekommt man bei FastAVR noch ein Assemblerlisting, was
ggf nötige Optimierungen "von Hand" mächtig vereinfacht. Ausserdem
kann man so überprüfen wie sinnvoll der Compiler arbeitet.

bye

Frank

von Rolf Magnus (Gast)


Lesenswert?

Naja, viele Programmierer von PC-Software kümmern sich heute kein
Bischen um Effizienz, weil die heute so viel Rechenpower und Speicher
haben, daß das da nicht mehr so wichtig ist. Da denkt einfach keiner
mehr daran, daß jemand noch mit einem Computer mit weniger als 2GHz
Takt und 1GB RAM arbeiten könnte.

von Ralf Kellerbauer (Gast)


Lesenswert?

http://www.mcselec.com/index.php

'Pentium 266MHz, 64Mb Ram' ... Win 98SE oder Win95 ?

Man sollte Verständnis haben, daß die Software-Hersteller moderne
Software = Bascom 1.11.8.2 nicht mehr für alte Hardware optimieren.

von André K. (andre-)


Lesenswert?

Also ich hab, wie oben schon geschrieben, einen Athlon XP 2500+. Dazu
512MB RAM. Der ganze andere Kram sollte auf die Geschwindigkeit wohl
keinen grossen Einfluss haben.

In dieser Region bekommst jetzt wahrscheinlich schon Aufruestkits um
50-70EU. Gehaeuse etc. koenntest ja alles behalten.

Alternativ eben auf Fastavr o.ae. umsteigen, wobei ich persoenlich
Bascom doch etwas besser finde.

Beste Gruesse,
André

von Hannes L. (hannes)


Lesenswert?

> Naja, viele Programmierer von PC-Software kümmern sich heute kein
> Bischen um Effizienz, ...

Sind es nicht eher die Anbieter der Compiler bzw.
"Programmier-Programme"?

;-)

...

von Karl H. (kbuchegg)


Lesenswert?

In diesem konkreten Fall: ja.

Aber Rolf hat schon recht. Kein Schwein macht sich heute
mehr die Mühe groß an Algorithmen zu feilen bzw. überhaupt
einen dem Problem angemessenen Algorithmus auszuwählen.
Das wird heutzutage allzuoft mit schierer Rechenpower erschlagen.
(von Programmierern die wahrscheinlich noch nie in einer
Vorlesung 'Algorithmen und Datenstrukturen' waren. Genauso sehen
dann auch ihre Programme aus.)

Versuch doch mal einen simplen Maustreiber oder Keyboardtreiber
vom Netz zu holen. Da hast du schnell mal eine Zip-Datei mit
15Mb in der Hand. Was Microsoft mit all dem Speicher für das
Betriebssystem macht ist mir ein vollkommenes Rätsel. Wenn
du früher ein BS ausgeliefert hättest, dass mehr als 2 Mb an
Plattenplatz verbraucht, wärest du gesteinigt worden.

von Oliver _. (verleihnix)


Lesenswert?

Moin Jürgen,

also hier ist ein voller Mega8 in 4sec fertig compiliert,
mit Bascom 1.11.8.3, AMD 2800+ und 1GB RAM, nix dolles also.

In Bascom habe ich nichts verändert, nur Standarteinstellungen,
ach ja, Optimize Code ist eingeschaltet und alle Daten wie
Quarz, LCD etc sind im File deklariert!

mfg
Oliver

von Peter D. (peda)


Lesenswert?

Einfach mal den Taskmanager einschalten und sehen, ob Bascom wirklich
nahe 100% CPU-Last braucht.


Bei mir ist zur Zeit das längste das Flashen des Chips, da ich mit nem
P89C668 arbeiten muß und der pro Page 10s Löschzeit benötigt (50s
insgesamt).


Peter

von Daniel L. (bucho)


Lesenswert?

Hallo!

Bei mir braucht Bascom für ein Programm, daß 60% des Mega128 belegt 2-3
Minuten. Ich habe einen Pentium 4 mit 2,8 GHz. Weis auch nicht, warum
das so lange dauert, aber ich kann damit leben.

Gruß

von Jürgen C (Gast)


Lesenswert?

Hallo,

ich habe es jetzt auf einem Pentium D mit 3GHz und 1GB Ram probiert.
Ergebnis: ca. 10 Sekunden für mein Programm (6% vom Mega128).
Das kommt dan auch auf die 2-3 min von Bucho.
Nachteil: PC nicht portable, Stomaufnahme ca. 300W(reicht zur Heizung
meines Büros im Winter)

Mich würde noch interresieren wie lange AVR-GCC zum compilieren
braucht.

Da ich fast nach jeder Änderung im Programm neu compiliere fallen
die zu erwartenden 2-3 min schon ziemlich ins Gewicht.
Bei meinem Notbook wären das dann über 10 min.
Schade, das sich die Programmierer des Compilers nicht mehr Mühe
gegeben haben.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Na das ist ja wirklich langsam. Der ARM-GCC braucht auf meinem 1.3 GHz
G4 Notebook für den MP3-Player-Code (53 Dateien, ergibt 120 kB Flash)
nur 30 Sekunden.

von ,,,, (Gast)


Lesenswert?

>Schade, das sich die Programmierer des Compilers nicht mehr Mühe
gegeben haben.

Naja, also so würd ich des net sagen, mein Bascom ist echt fix!

von onlinevirenscannerverdächtiger (Gast)


Lesenswert?

Die Frage nach dem Virenscanner hatte ich nicht umsonst gestellt.

Ein onlinevirenscanner, der jede Aktivität aller Programme überwacht,
bremst selbst schnelle PCs heftig aus.
Auf so einem alten Müllhaufen (pII266 ohne Speicher) ist das erst recht
bedenklich.

von Jürgen C (Gast)


Lesenswert?

Hallo,
die Erfahrung mit den Virenscannern habe ich schon im Zusammen-
hang mit anderen Programmen gemacht und deshalb keinen mehr
installiert.
Ich kann deshalb nicht ausschließen das mein System von einem
Virus befallen ist,was ich aber nicht annehme.
So wie es in den obigen Berichten steht, ist die compilierzeit
umgerechnet auf meinen Rechner scheinbar normal.

Jürgen

von Karl H. (kbuchegg)


Lesenswert?

> Mich würde noch interresieren wie lange AVR-GCC zum compilieren
> braucht.

Die Compilierzeiten sind eigentlich relativ uninteressant,
da in C anders gearbeitet wird. Man compiliert selten ein
komplettes Programm in einem Rutsch.
Viel interessanter sind die Linkzeiten. Bisher konnte ich
nicht klagen.

von Jasmin (Gast)


Lesenswert?

Du scheinst wohl den Compiler nach jeder halben Programmzeile zum
Syntaxchecken zu benutzen?

Dann haut die Compilierungszeit natürlich unangenehm rein.....

Ich habe vor 1,5 Jahrzehnten bei IBM in Dallas einmal eine Prüfung auf
Großrechnerarchitektur absolvieren müssen.
Vorbereitungszeit ca. 1 Jahr.
Wir durften den Compiler dabei maximal 4 mal starten (bei ca. 500
Programmzeilen !), da schaut man denn schon sehr intensiv auf seine
Programmzeilen.

Manchmal sogar wie's Schweiner'l ins Uhrwerk !


Jasmin

von Jürgen C (Gast)


Lesenswert?

Hallo Jasmin,

nicht nach jeder halben Zeile, aber viel mehr als fünf werden es
meistens nicht. Ich bin kein Profi und die meisten Befehle und deren
Syntax muß ich erst probieren. Mein ganzes Programm hat nicht viel
mehr als 500 Zeilen.
Ich kann mir nicht Vorstellen 100 Zeilen Programmtext am Stück zu
schreiben, der dann auch noch das macht, was ich mir Vorstelle.
Von den Tippfehlern einmal ganz abgesehen.
Trotzdem nervt es ziemlich ein oder zwei Minuten zu warten, wenn man
auf das Ergebnis gespannt ist.
Gibt es in Bascom eine Möglichkeit Funktionen und Proceduren die in
Basic geschrieben sind, als compilierte Programmteile(Objekte) einzu-
binden. LIB geht laut Beschreibung nur mit ASM.

Gruß Jürgen

von Sebastian Schmidt (Gast)


Lesenswert?

Also das Bascom langsam ist kann ich nicht bestätigen.

Auf meinen normalen eher schon veralteten PC´s könnte ich mich nicht
über die Geschwindigkeit beklagen.

Einzig auf meinen ganz alten 486 Laptop dauert die Übersetzung etwas
längeeer. (aber der gehört ja auch heutzutage nichtmehr zu
"Computern")

Somit würde ich eher auf eine störende Einflußquelle wie den bereits
erwähnten Virenscanner oder etwas derartiges tippen.
Hast du mal wie oben beschrieben in den Taskmanager geguckt?

Also auch bei meinen größten Programmen (mit >8kb)hat es eigentlich nie
länger als eine halbe Minute gedauert.

freundlichst
Sebastian

von Marcus (Gast)


Lesenswert?

Habt Ihr seinen Post genau gelesen:

Er hat einen P266 mit 64MB - das ist nach heutigen Maßstäben
extrem langsam.

Da kann es schon sein, daß moderne Software sehr langsam läuft ...
Faktor 10 für die CPU und Faktor 2-50 für den Speicher sind hier
leicht vorstellbar.

Gruß, Marcus

von Marco S. (masterof)


Lesenswert?

abo

von Frank (Gast)


Lesenswert?

Natürlich sollte man bei so alten Rechnern dafür sorgen, dass unnötige
Ressourcenfresser abgeschaltet sind. Permanente Virenscanner zählen
hier natürlich dazu, aber auch windowseigene Sachen, wie grosse
Hintergrundbilder und jede Menge Sounds. Mit Hilfe des Taskmanagers
kann man sich einen guten Eindruck verschaffen was da so im Hintergrund
noch so alles mitläuft und vom Rechner zum Teil unnötigerweise
Kapazitäten verlangt. Meinem alten 133 MHz Denkbrett hab ich z.B. die
IRDA abgeschaltet wenn ich sie nicht brauchte und Viren wurden nur
manuell gesucht. Dazu ein einfarbiger Hintergrund und alle Sounds
abgeschaltet, alle unnötigen PCMCIA Karten raus und auch irgendwelche
Synchonisierungsprogramme für Handy, PDA und Sonstiges werden nur bei
Bedarf gestartet. Dann klappts auch mit BASCOM und auch anderen
Entwicklungsumgebungen. Der Sinn dahinter ist, so viel Speicher wie
möglich für den Compiler nutzen zu können, ohne dass das Betriebssystem
ins permanentswappen gerät. Wenn das passiert kommt es zu elend langen
Compilerzeiten, da die Plattenauslagerung immernoch die langsamste
Variante ist.

bye

Frank

von Jürgen C (Gast)


Lesenswert?

Hallo,

ich habe eben das Update auf Version 1.11.8.3 gemacht.
Jetz braucht die Compilierung nur noch 28 Sekunden, also deutlich
weniger als die Hälfte von Version 1.11.8.2 (70 Sekunden).
Wenn die so weiter machen, dann wird es noch richtig flott; auch auf
meiner alten Kiste.

Viele Grüße

Jürgen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.