32 Bit oder 64 Bit

Antworten
hausi
Beiträge: 132
Registriert: Mi 23. Sep 2009, 08:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

32 Bit oder 64 Bit

Beitrag von hausi »

Ich bin mir nicht sicher, ob ich die neuen Programme 64 Bit oder 32 Bit erstellen soll. Mache ein DB Programm mit Lazarus und Zeos und Firebird.

Hausi

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2639
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: 32 Bit oder 64 Bit

Beitrag von m.fuchs »

Das kommt wohl sehr auf deine Zielgruppe an.

Wenn du zum Beispiel ein Programm für einen geschlossenen Kreis schreibst, der nur Windows7/64 einsetzt, dann kompiliere als 64-Bit-Exe.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: 32 Bit oder 64 Bit

Beitrag von mschnell »

Soweit ich informiert bin:

- Natürlich gibt es Anwendungen, die sehr viel Speicher brauchen (> ca 2 GByte), die mnit 32 Bit gar nicht gehen.
- Ein 32 Bit Betriebssystem kann nicht mehr als ca. 2 GB RAM verwalten, deshalb liegt mehr installierte Speicher brach. Ein 64 Bit Betzriebsystem könnte den Speicher zum Vermeiden von Swapping und als Disk-Cache verwenden (auch für 32 Bit Software)
- Ein 64 Bit Programm braucht u.U., wesentlich mehr Speicher als ein 32 Bit Programm. Da der Zugriff auf den Speicher über den Cache in der CPU (der eine feste Größe hat) kann ein 64 Bit Programm langsamer als ein 32 Bit Programm sein. Gilt offensichtlich am ehesten für kleine Programme, und solche, die in mit "engen" Schleifen laufen
- Wenn tatsächlich viel mit 64 Bit Daten gearbeitet wird können 64 Bit Programme natürlich wesentlich schnell sein.

-Michael

hausi
Beiträge: 132
Registriert: Mi 23. Sep 2009, 08:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: 32 Bit oder 64 Bit

Beitrag von hausi »

32 Bit hat für mich den Vorteil, dass es auch auf alten Rechnern läuft und ich das Zielpublikum vergrössern kann. 32 Bit wird sicher noch lange unterstützt, wenn man bedenkt, dass der Internetexplorer 64 Bit gar nicht richtig läuft. Also er läuft schon, kann aber viele Homepages nicht anzeigen, deshalb liefert MS den Explorer 32 Bit mit. Das selbe beim Office von MS, das ist auch noch 32 Bit. Wenn 64 Bit keinen Vorteil bietet, dann denke ich, dass 32 Bit zur Zeit noch die bessere Entscheidung ist. Man kann ja immer noch später auf 64 Bit wechseln. Gehe davon aus, dass man 32 Bit Programme einfach mit dem 64 Bit Lazarus kompilieren kann.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2639
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: 32 Bit oder 64 Bit

Beitrag von m.fuchs »

Du kannst es auch einfach für mehrere Systeme und Architekturen anbieten.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: 32 Bit oder 64 Bit

Beitrag von marcov »

Ohne schwer wiegende Grunde: 32-bit für Applikationen, 64-bit für Services und Shell plugins.

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: 32 Bit oder 64 Bit

Beitrag von mischi »

Aber schon beim Erstellen von 32bit Software daran denken, dass das Programm auch als 64bit laufen soll, also nix integer als Pointer oder ähnliche faule Tricks.
MiSchi macht die fink-Pakete

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: 32 Bit oder 64 Bit

Beitrag von mschnell »

mischi hat geschrieben:Aber schon beim Erstellen von 32bit Software daran denken, dass das Programm auch als 64bit laufen soll, also nix integer als Pointer oder ähnliche faule Tricks.

Das ist kein Problem "32 Bit Software" - also mit 32 Bit Compiler übersetzter Source Code - verwendet auch in einem 64 Bit OS 32 Bit Pointer. (Oder meinst Du man soll ermöglichen, das Programm auch mit einem 64 Bit Compiler zu übersetzen ? )

-Michael

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: 32 Bit oder 64 Bit

Beitrag von mischi »

mschnell hat geschrieben:Das ist kein Problem "32 Bit Software" - also mit 32 Bit Compiler übersetzter Source Code - verwendet auch in einem 64 Bit OS 32 Bit Pointer. (Oder meinst Du man soll ermöglichen, das Programm auch mit einem 64 Bit Compiler zu übersetzen ? )

Letzteres.
MiSchi macht die fink-Pakete

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: 32 Bit oder 64 Bit

Beitrag von Antrepolit »

Grundsätzlich tendiere ich dazu, eine 32-Bit und eine 64-Bit Version zu erstellen. Was bei einfachen Dingen scheinbar keinen Unterschied macht, zeigt sich spätestens dann, wenn man eine Explorer-Erweiterung in Form einer DLL nutzt. 32-Bit-DLLs können nicht auf einem 64-Bit-System in den Explorer integriert werden. Umgekehrt natürlich auch nicht.
Auch bei der Oracle-Datenbank zeigt sich, dass die Client-DLLs Probleme bringen, wenn man mit CLOBs arbeiten möchte. Ich weiß nicht, ob das Problem in der aktuellen Laz-Version gelöst wurde. Hatte letztes Jahr einen Lösungsvorschlag an die Laz-Entwickler geschickt, der zumindest bei Oracle 12.1c unter 64-Bit die TOracleConnection fixt.

Wenn du also nur für 32-Bit entwickelst, und einen Fehler auf allen 64-Bit-Systemen erhältst, hast du automatisch die aktuellere Nutzergruppe verloren. Und wenn du nicht richtig testest, wirst du den Fehler nur noch daran merken, dass du keine neuen 64-Bit-Nutzer hinzubekommst.
Grüße, Antrepolit

care only if your os is really burning

Patito
Beiträge: 203
Registriert: Di 22. Sep 2009, 13:08
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: 32 Bit oder 64 Bit

Beitrag von Patito »

So langsam gibt es mehr und mehr Dinge nur noch für 64-bit.
Meine eigenen Tools benötigen inzwischen auch mal locker 6GB RAM.
Ich erinnere mich gar nicht mehr, wann ich zuletzt einen Rechner ohne 64-bit Prozessor gekauft habe.
Das muss bestimmt noch zu den Zeiten von Windows 98 gewesen sein.

Ich denke im Moment sollte man seinen Code so schreiben, dass er auf 32-bit und
64-bit läuft. So sonderlich schwierig ist das auch nicht. Man sollte einfach darauf achten keine
Pointer in 32-bit Integer zu speichern. Ich musste bei meinen Tools nur ein paar Kleinigkeiten ändern und
habe im Code kein einziges $IFDEF benötigt.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: 32 Bit oder 64 Bit

Beitrag von mschnell »

Patito hat geschrieben: dass er auf 32-bit und 64-bit läuft.


Das geht nur mit Java, CIL und ähnlichen Frameworks.

Native Programme müssen immer für beide Varianten separat kompiliert (und ausgeliefert) werden.

-Michael

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2639
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: 32 Bit oder 64 Bit

Beitrag von m.fuchs »

mschnell hat geschrieben:
Patito hat geschrieben:sollte man seinen Code so schreiben, dass er auf 32-bit und 64-bit läuft.

Das geht nur mit Java, CIL und ähnlichen Frameworks.

Quark, das ist geht natürlich mit Lazarus.

mschnell hat geschrieben:Native Programme müssen immer für beide Varianten separat kompiliert (und ausgeliefert) werden.

Das hat nie jemand bestritten. Wenn du nicht sinnentstellend zitierst hättest (ich habe das mal um den roten Text erweitert), wäre das auch klar. Es geht um den Code, nicht um die daraus resultierenden Executables.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten