32bit oder 64bit ?
-
- Beiträge: 321
- Registriert: Sa 11. Jun 2016, 12:16
- OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
- CPU-Target: 64Bit
- Wohnort: Konstanz
32bit oder 64bit ?
Ist es beim fpc möglich, vor dem Compile festzulegen, ob mein Projekt als 32bit oder als 64bit compiliert wird ?
Denn es ist problematisch, wenn auf einem 64bit-PC kein 32bit-Projekt erzeugt werden kann...
Denn es ist problematisch, wenn auf einem 64bit-PC kein 32bit-Projekt erzeugt werden kann...
Re: 32bit oder 64bit ?
Das ist kein Problem, lade dir die 32Bit Version von Lazarus herunter, die Binary wird überall laufen, mit 64Bit Kompilaten laufen deine Anwendungen halt nicht auf 32Bit, umgekehrt ein 32Bit Kompilat aber auf eine 64Bit System unter Vernachlässigbaren Leistungsverlust.malabarista hat geschrieben:Ist es beim fpc möglich, vor dem Compile festzulegen, ob mein Projekt als 32bit oder als 64bit compiliert wird ?
Denn es ist problematisch, wenn auf einem 64bit-PC kein 32bit-Projekt erzeugt werden kann...
-
- Beiträge: 475
- Registriert: Do 15. Nov 2007, 16:58
- OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
- CPU-Target: i386, x64
- Wohnort: Gera
Re: 32bit oder 64bit ?
Hallo,malabarista hat geschrieben:Ist es beim fpc möglich, vor dem Compile festzulegen, ob mein Projekt als 32bit oder als 64bit compiliert wird ?
Denn es ist problematisch, wenn auf einem 64bit-PC kein 32bit-Projekt erzeugt werden kann...
aus meiner Erfahrung kann ich sagen das es zwar möglich ist, aber das System dafür vorzubereiten nicht ganz so einfach.
Unter Windows ging es noch am einfachsten, da musste ich nur den FPC 2x bauen. 1x für 32bit und 1x für 64 bit(Googlestichworte: FPC CPU_TARGET=). Beide innerhalb der selben Verzeichnisstruktur(Unterverzeichnisse für die beiden Architekturen werden automatisch angelegt). Am Ende hab ich die ppcx64.exe ins gleiche Verzeichnis gepackt wie die ppc386.exe und die fpc.exe aus diesem Verzeichnis auch zum erstellen genommen.
Unter Linux sollte es im Prinzip genauso funktionieren, das Problem an dem ich schließlich gescheitert bin, war das die benötigten libraries (X11, libc...) auf dem System nur in 64bit vorlagen und deshalb das linken nicht funktionierte. Wenn du eine Distro hast, bei der beide Arten von Libs mitgeliefert werden oder du herausfindest welche Pakete nachinstalliert werden müssen, sollte es klappen.
Alternativ kannst du auf einem 64bit Linux noch ein 32bit Linux in einer VM installieren.
Hoffe das hilft dir weiter.
mfg Ingo
-
- Beiträge: 6918
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: 32bit oder 64bit ?
Unter Windows würde ich 32Bit nehmen, da sind WinXP-System noch recht verbreitet, und dies laufen mit 32Bit.
Ich denke kaum, das wir Hobby-Programmierer eine Anwendung schreiben, welche zwingend 64Bit braucht.
Unter Linux sieht dies anders aus, da werden die meisten eine 64Bit-Version haben.
Ich denke kaum, das wir Hobby-Programmierer eine Anwendung schreiben, welche zwingend 64Bit braucht.
Unter Linux sieht dies anders aus, da werden die meisten eine 64Bit-Version haben.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 1102
- 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: 32bit oder 64bit ?
https://en.wikipedia.org/wiki/Windows_X ... 64_EditionMathias hat geschrieben:Unter Windows würde ich 32Bit nehmen, da sind WinXP-System noch recht verbreitet, und dies laufen mit 32Bit.
Windows Services und Plugins (zu 64-bit Programme) benutzen unbedingt 64-bit. Ein bisschen Dataset in Speicher laden kann auch schon mehr als 2 GB nutzen.
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: 32bit oder 64bit ?
marcov hat geschrieben:https://en.wikipedia.org/wiki/Windows_X ... 64_EditionMathias hat geschrieben:Unter Windows würde ich 32Bit nehmen, da sind WinXP-System noch recht verbreitet, und dies laufen mit 32Bit.
"Die Windows XP „x64 Edition“ (Codename „Anvil“) ist eine Version, die ausschließlich für Prozessoren mit AMD64- oder Intel-64-Erweiterung entwickelt wurde. Sie läuft nicht auf 64-Bit-Prozessoren anderer Hersteller und ist ähnlich Windows XP Professional, basiert aber auf dem Kernel von Windows Server 2003 und besitzt somit eine modernere Basis (NT 5.2)." (https://de.wikipedia.org/wiki/Microsoft ... 64_Edition)
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 6918
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: 32bit oder 64bit ?
Dieses System wurde noch seltener gesehen als Linux. Ich kannte nur eine Software welches dieses vorausgesetzte, das war FarCry 1, aber auch nur mit einem Patch, welcher bessere Grafik versprach.https://en.wikipedia.org/wiki/Windows_X ... 64_Edition
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 1102
- 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: 32bit oder 64bit ?
FPC win64 ist darauf entwickelt. Florian hat(te?) ein Lizenz. Es gab glaub ich nur retail Lizenzen, und nicht einfach zu bekommen.Mathias hat geschrieben:Dieses System wurde noch seltener gesehen als Linux. Ich kannte nur eine Software welches dieses vorausgesetzte, das war FarCry 1, aber auch nur mit einem Patch, welcher bessere Grafik versprach.https://en.wikipedia.org/wiki/Windows_X ... 64_Edition
Ich bin erst mit Vista eingestiegen. (konnte man auch einfach 64-bit OEM Lizenzen kaufen. Ich glaube ich habe für mein Home Premium damals Eur109 gezahlt)
-
- Beiträge: 6918
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: 32bit oder 64bit ?
Für die Win Plattform gab es dazumal kaum eine Alternative.FPC win64 ist darauf entwickelt. Florian hat(te?) ein Lizenz.
Das sieht man wieder, wie fortschrittlich FPC war(ist), das sie dazumal schon die Mühe gaben, für Win64 zu entwickeln,

Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: 32bit oder 64bit ?
umgedreht. 64bit ist langsamer.Das ist kein Problem, lade dir die 32Bit Version von Lazarus herunter, die Binary wird überall laufen, mit 64Bit Kompilaten laufen deine Anwendungen halt nicht auf 32Bit, umgekehrt ein 32Bit Kompilat aber auf eine 64Bit System unter Vernachlässigbaren Leistungsverlust.
Du hast (nur) zugriff auf maximal 3,5Gb Speicher
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: 32bit oder 64bit ?
Ja, selbst 1Gb voll zu bekommen stellt einen aber schon vor Herausforderungen
-
- Beiträge: 1102
- 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: 32bit oder 64bit ?
Absolut eben. Erster open source kompiler auf Win64. GCC kam nur spaeter.Mathias hat geschrieben:Für die Win Plattform gab es dazumal kaum eine Alternative.FPC win64 ist darauf entwickelt. Florian hat(te?) ein Lizenz.
Das sieht man wieder, wie fortschrittlich FPC war(ist), das sie dazumal schon die Mühe gaben, für Win64 zu entwickeln,
-
- Beiträge: 2120
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: 32bit oder 64bit ?
Das kann man so nicht Pauschalisieren, auf 64 Bit Datentypen sind 64 Bit Programme deutlich schneller als 32 Bit Programme und umgekehrt. Allerdings gilt im allgemeinen 32 Bit ist nur halb so viel wie 64 Bit, das heißt allein von der Datenmenge die durch den Bus gejagt wird sind 64 Bit Typen langsamer in der Verwendung. Und da 32 Bit Programme viele 32 Bit Typen verwenden (Zeiger, Handles, etc.) und 64 Bit Programme die selben typen als 64 Bit hat sind 64 Bit Programme augenscheinlich langsamer. Würde man allerdings bei einem 32 Bit Programm ausschließlich 64 Bit Typen verwenden wäre 64 Bit schneller.Christian hat geschrieben:umgedreht. 64bit ist langsamer.Das ist kein Problem, lade dir die 32Bit Version von Lazarus herunter, die Binary wird überall laufen, mit 64Bit Kompilaten laufen deine Anwendungen halt nicht auf 32Bit, umgekehrt ein 32Bit Kompilat aber auf eine 64Bit System unter Vernachlässigbaren Leistungsverlust.
Du hast (nur) zugriff auf maximal 3,5Gb Speicher
Aber wenn es einem um die Geschwindigkeit so sehr ankommt dass man nur 32 Bit Programme mit 32 Bit Datentypen schreibt, sollte man eher daran denken Fortran nehmen statt Pascal
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: 32bit oder 64bit ?
itjump hat geschrieben:Ja, selbst 1Gb voll zu bekommen stellt einen aber schon vor Herausforderungen
Code: Alles auswählen
var
p: array[0..$fffffff] of Pointer;
begin
Getmem(p[0], $10000000000);
ReadLn;
Freemem(p[0]);
end.

Windows packt es aber in den swap und nicht in den physikalischen RAM.
Aber ja du hast recht, im realen Betrieb ist es sehr schwierig 1GB RAM voll zu kriegen. Mein größtes Projekt braucht 10-15MB.
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Re: 32bit oder 64bit ?
Ja, das was du da gemacht hast, den Speicher zu reservieren ist möglich, aber ich rede über Programme, die auch was Sinnvolles machen und nicht über Viren 
Übrigens, kannst du auch mit einer Endlosschleife in Java Script Firefox dazu bringen immer mehr RAM zu verbrauchen und dadurch den PC abstürzen lassen. Zumindest ging das unter Windows 7 vor einem Jahr noch.

Übrigens, kannst du auch mit einer Endlosschleife in Java Script Firefox dazu bringen immer mehr RAM zu verbrauchen und dadurch den PC abstürzen lassen. Zumindest ging das unter Windows 7 vor einem Jahr noch.