Sparen von Bytes?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

KnorxThieus

Betreff: Sparen von Bytes?

BeitragDi, Feb 14, 2012 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, Blitze! Smile


Ich beschäftige mich gerade mit einer ziemlich grundlegenden Frage: Ist das Sparen von Dateigrößen (Bits, Bytes...) zu empfehlen? Ich rede dabei von den Dateien, die das Programm erzeugt.
Ich weiß, dass ein Zeilenumbruch 2 Bytes sind. Soll ich ihn jetzt auslassen, sodass die Datei in der Programmierphase unübersichtlicher wird, oder ist das egal? Question

Erbitte Antworten. Wink

Tschüüüß! Razz
Version: BlitzPlus / Blitz+

Xeres

Moderator

BeitragDi, Feb 14, 2012 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Du solltest da sparen, wo es Sinn macht. Solange du nicht Daten im GiB Bereich schreibst, musst du dir da keine Sorgen machen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Midimaster

BeitragDi, Feb 14, 2012 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
geht es dir um den Speicherbedarf von Programmiercode oder den für Daten, die das Spiel braucht?

Bei den heute zur Verfügung stehenden GigaBytes kommt es meist nicht darauf an Bytes zu sparen. Dagegen schadet es der Übersichtlichkeit sehr, wenn man Programmcode zu eng schreibt. Ich bevorzuge es z.b. zwischen Funktionen immer 3 Leerzeilen zu machen. Und natürlich wird mit TAB nach jedem IF, FOR, SELECT, FUNCTION, etc... der Text immer tiefer eingerückt. Un eigentlich gehört jeder Befehl auf eine eigene Zeile. Vergleiche selbst:
BlitzBasic: [AUSKLAPPEN]
Function Nix(); tut nix
End Function
Function FastNix()
If A=B Then C=D; tut nix
End Function
Function MehrAlsNix()
If A=B
For i=0 To 10; tut nix
Next:EndIf
End Function


mit dem hier:

BlitzBasic: [AUSKLAPPEN]
Function Nix()
; tut nix
End Function


Function FastNix()
If A=B
C=D
; tut nix
EndIf
End Function



Function MehrAlsNix()
If A=B
For i=0 To 10
; tut nix
Next
EndIf
End Function
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

PacMani

BeitragDi, Feb 14, 2012 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich empfehle dann gleich ein binäres Dateiformat.

Weiterhin, nicht ganz das was du meinst, aber du kannst zumindest bei Strings je 3 Bytes Platz sparen: https://www.blitzforum.de/foru...hp?t=36503

the FR3AK

BeitragDi, Feb 14, 2012 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei den Speichervolumina die heutzutage zur Verfügung stehen, musst du dir bei kleinen Spielen nicht sonderlich Gedanken machen, vorallem nicht, wenn es um externe Scripts oder gar deinen eigenen Code geht (welchen der Endbenutzer sowieso nicht bekommt - sofern es nicht Open Source ist).

hazumu-kun

BeitragMi, Feb 15, 2012 11:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Falle des Programmcodes kannst du den kürzen wie du magst und es hat kaum Effekt.
Blitzbasic linkt immer alle möglichen Funktionen aus dem Sprachumfang dazu, sodass du immer bei ungefähr 750KB raus kommst nach dem Kompilieren.
Die 20 Bytes mehr oder weniger fallen dann wirklich nicht ins Gewicht. Allerdings kann der UPX Packer jede Blitz-exe auf ca. die Hälfte komprimieren ohne das es ein Archiv wird welches man zuerst entpacken müsste. Die *.exe wird einfach optimiert.

Bei Konfigurationsdateien würde ich auf keinen Fall sparen, da sollte es möglichst übersichtlich sein. Wenn du kein ini Format nutzt sollte trotzdem etwas wie:
Code: [AUSKLAPPEN]

width=400
height=300
backgroundcolor=FFFF55
eigenschaft=wert

dabei herauskommen, vielleicht möchte ein User ja mal per Konfigurationsdatei dein Programm für sich anpassen. Das liegt aber in deinem Ermessen ob du das erlauben möchtest, denn vielleicht kann dein Programm über diesen Weg zum Absturz gebracht werden und du magst es nicht drauf ankommen lassen.

Für externe Scripte gilt ähnliches.
Wenn du es schon auslagerst, kannst du es auch gleich in Klartext und schön formatiert tun, damit der User eventuell etwas Feintuning und Modding betreiben kann.

Savegames würde ich jedoch im Binärformat schreiben und noch mit Xor verschlüsseln, da hat ein User nicht unbedingt dran rumzufummeln.

Aber generell zum Platzproblem:
So Gedanken sollte man sich machen wenn man ein wirklich großes Spiel (für uns sind das um die 50MB würde ich mal sagen) auf eine etwas kundenfreundlichere Downloadgröße bringen muss.
Dort kann man dann die Konfigurationsdatei im Binärformat und die Scripte unübersichtlich und eng machen.

P.s.: Ich habe mich jetzt hauptsächlich auf verschiedene Stufen an Übersichtlichkeit und die daraus resultierenden Möglichkeiten für den Endbenutzer bezogen, da, wie mein Vorposter bereits schrieb, Speichervolumina heutzutage nicht mehr das Problem des Programmierers sind.

KnorxThieus

Betreff: RE: Die vielen Antworten :wink:

BeitragDo, Feb 16, 2012 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Es haben wohl einige gedacht, ich spräche vom Programmcode Rolling Eyes . Nein, aber mit hazumu-kun Arrow deiner umfangreichen Antwort hab' ich's dann wohl verstanden. Smile
Idea Ich werde die Variante des Absturzschutzes wählen. Idea

Danke! Razz
Version: BlitzPlus / Blitz+

BladeRunner

Moderator

BeitragDo, Feb 16, 2012 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Och knorX, spar uns bitte diese Massen an Smileys und Textformatierungen. Das macht deinen Text echt nicht besser lesbar. Nicht jedes Posting muss aussehen wie ein Werk eines Dadaisten.
Danke!
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

KnorxThieus

BeitragDo, Feb 16, 2012 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
OK :](das erlaubt?)
Version: BlitzPlus / Blitz+

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group