Antwort schreiben

Übersicht Sonstiges Portal
Nachricht
Benutzername


Folgendes Feld dient zur Überprüfung, ob du ein Mensch bist. Bitte beantworte die Frage wahrheitsgemäß, da du sonst als Bot abgestempelt werden könntest:
Ich bin ein Bot.
Ich bin kein Bot.
Ich bin nicht mal ein Mensch.
Titel
Very Happy Smile Sad Surprised Shocked Confused Cool Laughing Mad Razz Embarassed Crying or Very sad Evil or Very Mad Twisted Evil Rolling Eyes Wink Exclamation Question Idea Arrow Weitere...

Schriftfarbe: Schriftgröße:

Tipp: Styles können schnell zum markierten Text hinzugefügt werden.

Text
Optionen
HTML ist aus
BBCode ist an
Smilies sind an
BBCode in diesem Beitrag deaktivieren
Smilies in diesem Beitrag deaktivieren

Thunder
Verfasst am: Do, Dez 17, 2015 1:29
Zitat:
Auch And, Or und Not sind sehr schnell. Sowas bringt allerdings nur bei sehr hardwarenahen Sprachen (z.B. C) was, und nur dann wenn man auf einem System ohne Mathematischem Coprozessor ist (z.B. einem Microcontroller), und man gleichzeitig den Prozessor bis ans Limit laufen lässt, und dieser Teil sehr oft und zeitkritisch ausgeführt wird.


Ein halbwegs aktueller C-Compiler wird eine Integer-Division durch 2^n auf jeden Fall in einen Bitshift konvertieren. Der BlitzMax Compiler kann das übrigens auch. Von BlitzBasic weiß ich es nicht...

Ich habe letztens ein C-Programm geschrieben, das mit Bitfeldern arbeitete, in denen x Bit Breite Felder waren, wobei das x eine symbolische Konstante war. Und ich habe den Code einmal für x = 2 optimiert geschrieben (also mit bitshifts) und einmal allgemein mit Division und Modulo. Wenn ich x = 2 gesetzt habe, ist für beide Funktionen exakt der gleiche Assemblercode herausgekommen.

Und natürlich machen solche Optimierungen Sinn, nur macht sie der Compiler und man muss sich als Programmierer keine Gedanken darüber machen.

@funkmaster5000: Die Faustregel ist meiner Meinung nach: wenn du zum Optimieren deines Codes etwas über die Hardware wissen musst, dann lässt du diese Optimierung lieber sein und lässt den Compiler machen Wink Solange du nicht Compiler-Backend-Programmierer bist, brauchst du dich darum nicht zu kümmern.
DAK
Verfasst am: Mi, Dez 16, 2015 13:55
Du änderst nix an der Mathematik dahinter. Das ist nur die Zahlenrepräsentation. Wenn du eine Zahl in Dezimal im Sourcecode hast, dann wird die beim Kompilieren in Binär umgewandelt (was quasi keine Zeit braucht), und in Binär in der .exe gespeichert. Gerechnet wird auch nur in Binär im laufenden Programm.

Was schon ein wenig einen Vorteil hat, sind binäre Rechenoperatoren, da verschiedene Rechenoperatoren verschieden viel Zeit brauchen. So ist z.B. die Division doch recht teuer. Eine Division durch eine Zweierpotenz (z.B. 2, 4, 8, 16, 32, 64, 128, 256, ...) lässt sich aber genauso durch einen Right Shift darstellen, welcher sehr schnell ist.

Code: [AUSKLAPPEN]
x = 12435 Shr 3 ;ist gleichbedeutend mit:
x = 12435 / 8


Auch And, Or und Not sind sehr schnell. Sowas bringt allerdings nur bei sehr hardwarenahen Sprachen (z.B. C) was, und nur dann wenn man auf einem System ohne Mathematischem Coprozessor ist (z.B. einem Microcontroller), und man gleichzeitig den Prozessor bis ans Limit laufen lässt, und dieser Teil sehr oft und zeitkritisch ausgeführt wird.

Bei dem Overhead den so eine Hochsprache ohnehin hat und mit den mathematischen Fähigkeiten von so hochgezüchteten Prozessoren wie allem seit einem Intel Pentium 4 machen solche Optimierungen allerdings beinahe keinen Sinn mehr. Da reden wir von Beschleunigung im tausendstel Prozent-Bereich. Also wirklich vernachlässigbar.
BladeRunner
Verfasst am: Mi, Dez 16, 2015 12:41
Nö, das was im 13. Türchen gezeigt wird ist ja nur eine andere Form der Zuweisung an die Variable - im Speicher ändert sich da nichts.
Es ist mehr eine Hilfe wenn man denn binäre/oktale/Hexadezimale Werte nutzen mag - was bei vielen Dingen nützlich sein kann.

So ist zB bei einer Variable status_flags ein %11001101 wesentlich übersichtlicher welches Flag denn gesetzt ist als ein schnödes 205.
funkmaster5000
Verfasst am: Mi, Dez 16, 2015 12:05
Ich finde die Idee super, schaue auch jeden Tag Smile

Zum 13ten Türchen habe ich eine Frage: führt die Verwendung von Binärmathematik zu bedeutend schnelleren Programmen?
DAK
Verfasst am: So, Nov 29, 2015 10:26
Was fur Tipps?
Holzchopf
Verfasst am: So, Nov 29, 2015 0:22
Find' ich gut! Genau so wie die Weihnachtssmilies! Very Happy
Xeres
Verfasst am: So, Nov 29, 2015 0:08
Ersatzweise werden die Tipps von 2011 nochmal laufen.
Steamsquid
Verfasst am: Sa, Nov 28, 2015 10:15
Satz mit X dit war wohl nix Neutral Na ja schade aber es gibt ja ein nächstes Jahr Very Happy
Steamsquid
Verfasst am: Mo, Nov 23, 2015 18:38
Na was kleines was man bis zum 28. schaffen kann - aber den Ideen sind keine Grenzen gesetzt ^^
CO2
Verfasst am: Mo, Nov 23, 2015 17:05
Hallo,

von welchem Umfang reden wir? Ein paar weihnachtliche Ideen hätte ich schon, ich bezweifle aber, dass diese nicht schon umgesetzt wurden...

Ansonsten könnte ich hier mal ein paar Ideen schreiben...
Eingeproggt
Verfasst am: Mo, Nov 23, 2015 0:31
24 neue Beitrage in einer Woche wird schwer.
Aber wir könnten wirklich so ein "best of codearchiv" oder so zusammenstellen?

mfG, Christoph
Xeres
Verfasst am: So, Nov 22, 2015 20:59
Der Thread hier sollte reichen - du kannst deinen Eingangsbeitrag Nachbearbeiten wie der dir Sinnvoll erscheint.
Steamsquid
Verfasst am: So, Nov 22, 2015 20:52
Okee dokee, dann kann ich den Thread dann zu einem Aufruf zum Beitrags-Sammeln umfunktionieren oder soll ich einen neuen erstellen? Wink
Xeres
Verfasst am: So, Nov 22, 2015 20:40
Technisch wäre das machbar. Soweit ich weiß, existiert Code für einen Adventskalender.
Ich glaube eher, die 24 Mitglieder auf zu treiben wird schwer.

Wenn du mir bis nächsten Samstag den 28.11.2015 24 Beiträge beschaffst (oder weniger und wir lassen Lücken / Wiederverwerten was altes) werde ich das liebend gern einbauen.

Vorzugsweise sollten die Codes hier nicht öffentlich gepostet werden um etwas Überraschung zu wahren.
Die restliche Organisation überlasse ich dir. Wink
Steamsquid
Verfasst am: So, Nov 22, 2015 17:16
Hey Leute,

manche Foren machen ja so kleine Adventskalender, bei dem 24 Mitgliedern je ein Tag zugeordnet werden und diese bis zu jenem Tag ein kleines Programm schreiben - halt nichts besonderes, nur eine kleiner Spielerei.
Da wollte ich mal fragen ob wir auch sowas machen wollen, und wenn ja würde ich mich schon für einen Tag melden Wink
Also was haltet ihr davon?

- Steamsquid -

Nachbearbeitet:

ACHTUNG ACHTUNG! Verehrte Mitglieder des BlitzBasic Portals!
Wer möchte sich einen Tag schnappen, an dem er sein eigenes kleines Programm als Teil des Adventskalenders zur Verfügung stellt? Nur nicht schüchtern! Jeder Teilnehmer ist gern gesehen! Very Happy
Einfach bei Interesse eine Antwort unter diesem Beitrag schreiben.

Powered by phpBB © 2001 - 2006, phpBB Group