Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

09.01.2007, 10:38

Release.exe

Hallo :)

also bischen in der sufu gestöbert, aber nicht unbedingt das gefunden was ich wollte.


ich wollte mal fragen, worin denn genau die unterschiede zwischen debug und release version liegen. gelesen hab ich schonmal, dass beim debug eben weniger fehler auftreten können , jedoch die exe datei um einiges größer wird. weiters,dass release exe dateien leichter abstürzen, wenn man zu wenige fehlerüberprüfungen macht. und auch,dass die release version um einiges schneller läuft als die debug. sonderlich auffallen wird das bei konsolenprogrammen nicht denk ich, aber bei späteren größeren spielen dann sicher. ich hab jedenfalls jetzt schon viel zeit mit nem programm verbracht und es nur im debug modus getestet und mal testeshalber:) im release laufen lassen und da stürzt es schon recht früh im programm ab :)


deswegen: was bietet denn die release version an "sicherheiten" weniger als die debug variante?

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

2

09.01.2007, 11:21

In der Debugversion werden zusaetliche Informationen in den Programmcode geschrieben. Zum Beispiel Zeilennummern: Stuerzt dein Programm dann ab, weiss der Debugger sofort in welcher Programmzeile ein Fehler aufgetreten ist. Die 'Sicherheit' bezieht sich wohl auf Pufferueberlaufe, Speicherfehler, Leaks, usw. Die Debugversion eines Programms ueberprueft zb auch zur Laufzeit ob ueber die grenzen eines Arrays hinausgeschrieben wird. Wichtig ist aber, dass das trotzdem ein Fehler bleibt!
Dein Programm muss im Releasemodus fehlerfrei laufen, andernfalls hat sich irgendwo ein Fehler eingeschlichen. Und die Performance kriegt man spaeter schon zu spueren, in Davids Buch hab ich was von 7mal schnelleren Releaseversionen gelesen - das ist nicht unerheblich
"Have you tried turning it off and on again?"

3

09.01.2007, 11:45

Neben dem was Chase bereits geschrieben hat kommt noch dazu das im Debugmodus alle Variablen mit 0 initialisiert werden, wenn du sie nicht selber initialisierst. Bei der release Version ist es dann der Wert der zufällig an der Speicheradresse stand an der sich nun deine Variable befindet.

Also alles immer schön initialisieren dann hast du ein paar Probleme weniger ;)

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

4

09.01.2007, 14:26

Zitat von »"Chase"«

in Davids Buch hab ich was von 7mal schnelleren Releaseversionen gelesen - das ist nicht unerheblich

David hat aber zusätzlich noch eigene Sicherheitsroutinen eingebaut, die nur in die Debugversion kompiliert werden und so die Engine im Debugmode zusätzlich verlangsamen, so dass man davon ausgehen kann, dass der reine Unterschied zwischen Debug und Release ohne eigene Veränderungen nicht ganz so groß ist.

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

5

09.01.2007, 14:27

Zitat von »"chriss"«

Neben dem was Chase bereits geschrieben hat kommt noch dazu das im Debugmodus alle Variablen mit 0 initialisiert werden

Wieso ist das eigentlich so? Ich finde, dass macht die Sache nicht einfacher, sondern komplizierter, weil man erstmal Grübeln muss warums auf einmal in der Releaseversion nicht mehr klappt...

Lares

1x Contest-Sieger

  • Private Nachricht senden

6

09.01.2007, 14:46

Vllt weil man davon ausgeht, dass Variablen ohne Werte bei Initalisierung immer 0 sein sollen. Und da man in der Releaseversion möglichst wenig Speicherplatz verbrauchen will, muss man halt auf dieses Feature verzichten
;)

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

7

09.01.2007, 14:49

Aber "Release" sagt ja schon, dass du diese Version und eben nicht die Debug Version veröffentlichen willst, und was bringt mir dieses "Feature"^^ wenn ich nix davon habe, weil ich es sowieso nicht verwenden kann

Lares

1x Contest-Sieger

  • Private Nachricht senden

8

09.01.2007, 14:57

Naja weniger Tipparbeit.Es soll halt Arbeit sparen...
OK geb mich geschlagen :lol:

9

09.01.2007, 20:08

Warum es so ist kann ich nicht sagen aber ich habe es festgestellt als ich zum ersten mal meine Mausabfrage mit DX gemacht habe. Wenn ich einfach nur eine Variable der DX Struktur erstelle und sie dann benutze kommt nur Müll raus, wenn ich die Variable ordentlich mit 0 initialisiere funktioniert sie wie im Debugmodus.

Deswegen immeralles anständig initialisieren dann hat man schonmal ein paar Probleme weniger ;)

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

10

09.01.2007, 20:33

Also das Phänomen mit der 0 Initialisierung ist mir unbekannt.

Bei mir ist es sinnvollerweise so: debug initialisiert mit irgendeinem festgelegten Schrottwert (~453626234) der fast immer auffällig falsche Ergebnisse liefert. Release initialisiert garnichts - die Startwerte ohne initialisierung sind je nach Speicher beliebig.

Werbeanzeige