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.07.2007, 23:32

Statische vs. dynamische Bibliothek

Hi,

ich habe vor für mein Spiel eine 2D Engine mit Allegro zu schreiben.

Ist eine statische Bibliothek schneller im Gegensatz zu einer dynamischen?

Im Prinzip müsste das doch so sein, denn wenn mitten im Spiel eine Funktion aus einer dynamische Bibliothek aufgerufen wird, muss diese erst geöffnet, die Funktion gesucht, und dann ausgeführt werden.
Oder werden alle Funktionen zu Beginn geladen?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

09.07.2007, 23:45

rein technisch gesehen ist eine statische bibliothek vermutlich "schneller". aber beides hat vor- und nachteile. und ich würde bei einer engine die entscheidung statisch vs. dynamisch nicht unbedingt aufgrund dieses performanceunterschiedes treffen.
grob gesehen ergibt er sich aus einer zusätzlichen indirektion (weil die funktionen in einer dll über funktionszeiger aufgerufen werden müssen), ist also in etwa vergleichbar mit dem eines virtuellen funktionsaufrufes.

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

3

10.07.2007, 08:22

Der größte vorteil einer dynamischen bibliothek:

Zitat

Das dynamische linken erhöht die Modularität von Programmen, weil sie DLLs unabhängig vom Programm kompillieren und testen können.

Darum würd ich für eine Engine DLLs verwenden.

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

4

10.07.2007, 16:52

Ich würde auch sagen das der vorteil einer dll das Updaten ist.

Wenn du alles in eine exe packst und das spiel riesig ist ,
dann dauert das updaten jahre ( über internet meine ich).

Wenn du aber alles auf mehrere dlls verteilst, dann
brauchst du nur einen kleinen teil updaten.

Also bei einer 2d engine die du nur ein/zwei-mal benutzt,
würde ich eine statische nehmen.
Bleibt aber deine Entscheidung

5

10.07.2007, 18:50

Hat schon jemand mal eine Platformuabhängige dynamische Bibliothek geschrieben?

Bei einer statischen ist das kein Problem, da haut man einfach seine Funktionen rein... aber bei einer dynamischen gibts ja noch DllMain und so...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

10.07.2007, 19:39

dlls sind etwas windows-spezifisches...es gibt natürlich auf anderen systemen äquivalente dinge, aber zumindest das DllMain zeug ist nicht plattformunabhängig...

7

10.07.2007, 19:52

Ja das ist klar... allerdings kann man das doch irgendwie mit dem Präprozessor so steuern, dass es unter jedem Betriebsystem kompilliert werden kann...

Es gibt ja viele dynamische Bibliotheken, die ich für Windows so wie für Linux kenne (Allegro, wxWidgets, OpenGL, GTK, QT, usw...)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

10.07.2007, 20:12

naja gut, dann machs einfach auch so wie die das dort machen :p

Werbeanzeige