Alte Gewissensfrage: 32 oder 64 Bit?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Sec
User
Beiträge: 16
Registriert: Montag 24. März 2014, 22:53

Angenommen Du hast da ein paar C-Extensions sowie ein Python-GUI und möchtest daraus mit dem PyInstaller eine schicke standalone App auf den Plattformen Windows, Mac OS und Linux stricken.
Dann ist es auf dem Mac keine Frage: Alles 64 Bit.
Auch bei Linux kann man sich noch zu einem singulären Angebot einer 64 Bit - Version durchringen: Ubuntu bietet neue Versionen nur noch für 64 Bit Kistchen an.
Doch Windows ist ein echter Zweifelsfall: Wenn man mit einem Window auf Python.org 7.3 runterläd (ohne auf die Downloadseite zu gehen) bekommt man auch für eine 64 Bit Maschine die 32 Bit Version. Klar, die 32 Bit Version läuft Dank des Kompatibilitätsmodus auf jedem 64 Bit. Trotzdem darf man nicht annehmen, dass dies der einzige Grund für das Default-Angebot der 32 Bit Python Version ist.
Nun zum standalone App: Wenn man die Extensions mit der geeigneten Compiler-Option für 32 Bit übersetzen und die 32 Bit Version von Python verwenden würde, müsste doch der PyInstaller daraus eine 32 Bit App schnüren, oder?
Allerdings plagt mich dann sofort das "Schlechte Gewissen": Testen unter harten Bedingungen kann ich es nicht mehr, weil ist seit Jahren keine 32 Bit Maschine mehr habe. Einen 32 Bit PC kann man auch nicht mehr so einfach kaufen. Vielleicht könnte man sich noch einen basteln. Aber für wen eigentlich den ganzen Aufwand? Ich habe keine Zahlen dazu gefunden wie viele Leute heute noch vor einem 32 Bit PC sitzen oder ein 32 Bit Windows nutzen. Ist es vertretbar eine Windows-App nur in einer 64 Bit Variante anzubieten?
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Das Testen ist Dank virtuellen Maschinen recht einfach.

Ich habe eine Python-Installstion mit 32bit unter Windows, die ich aktiv nutze, weil der ODBC-Treiber für eine Datenbank, die ich benutze, nur als 32bit-Version vorliegt.

Wenn du C-Extensions einsetzt, musst du dich ja schon viel früher damit auseinandersetzen, nicht erst beim packen.

Und wenn du auf Nummer Sicher gehen willst, dann nimmst du 32bit. Das läuft dann auf jedem Windows.
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Was ist denn ein 32-Bit-PC? Dir ist klar das 32-Bit-Betriebssysteme auch auf x64-Hardware laufen‽ Und bei ARM ist das in der Regel auch so. Und da kann es sogar Sinn machen ein 32-Bit-Betriebssystem auf einem ARM mit 64 Bit laufen zu lassen. Denn solange man da beispielsweise nur 1 GiB RAM hat, bringt ein 64-Bit-Linux so gut wie Null Vorteile, aber den Nachteil das 64-Bit-Code mehr Speicher benötigt als der gleiche Code für ein 32-Bit-System kompiliert.

Um Deine Frage beantworten darfst Du auch nicht nur generell die Systeme anschauen, sondern die Deiner Zielgruppe.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wir bieten unsere Desktop-Software nur noch mit 64 Bit an, auf beiden Plattformen (Mac/PC). Der abgeschnittene Zopf 32Bit auf der Mac-Plattform hat diese Entscheidung erzwungen, aber wir wollten dadurch die Komplexitaet reduzieren, Code nur noch fuer 64 Bit testen zu muessen. Irgendwen den das aergert gibt's immer, aber es gibt auch Leute, die vermissen Pferde-Droschken und Röhrenfernseher.
Sec
User
Beiträge: 16
Registriert: Montag 24. März 2014, 22:53

Dir ist klar das 32-Bit-Betriebssysteme auch auf x64-Hardware laufen‽
Eigentlich dachte ich, dass es mir klar gewesen wäre. Deine knallharte Antwort hat mich aber eines Besseren belehrt: Du meinst doch nicht, dass ich auf MEINER 64 Bit Hardware ein 32 Bit OS installieren soll, um die App zu testen. (Das tu ich nicht mal meinem Raspberry Pi an).
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du sollst gar nichts. Du sagst doch selbst, das Windows nach wie vor 32 Bit Anwendungen schluckt.Mir waere nicht ein einziger Fall bekannt, in dem jemand mit einer 32-Bit Anwendung unter 64-Bit Windows ein Problem NICHT gehabt haette, dass dann nur unter der reinen 32-Bit-Version aufgetaucht waere. Also was genau willst du noch mehr, bzw. was daran reicht dir nicht?
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Sec hat geschrieben: Donnerstag 13. Juni 2019, 14:13(Das tu ich nicht mal meinem Raspberry Pi an).
Soweit ich weiß hat ein Raspberry Pi max. 1024 MB Speicher. Welchen Grund sollte man haben, dort ein 64bit-Betriebssystem drauf zu installieren?
Wie __blackjack__ schon schrieb: Programme, die für 64bit kompiliert wurden, belegen mehr Speicher.
Als damals die ersten 64bit-Systeme für den Heimbedarf erschienen, sagte man: alles ab 4GB adressierbarer Speicher = 64bit. Dadrunter verliert man nur.

Ich habe so ein Netbook, bei dem man den Bildschirm abreißen kann, dann ist das ein Tablet. Da läuft zum Beispiel auch nur ein 32bit Windows 10 drauf, weil das auch nur eine Teetasse voll Speicher hat. Reicht dem aber zum arbeiten und dein 64bit-Programm würde darauf nicht laufen. Ich weiß aber nicht, ob ich und mein System, dein Benchmark sind.
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Sec: Was hast Du denn auf Deinem Raspi installiert? Alle offiziell unterstützten Betriebssysteme für den Raspi sind 32-Bit soweit ich weiss. Zumindest für das Raspbian und OSMC kann ich das auch bestätigen.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Sec
User
Beiträge: 16
Registriert: Montag 24. März 2014, 22:53

Yes you have laminated my ass, Borg! And the next bad Ausreade me infallen is was this Raspi. Auf ihm ist Raspbian installiert, welches in der Tat ein 32 Bit System ist (nach über einem Jahr habe ich es mal wieder gestartet).

Nun steht in meinem Raspi-Schmöker, dass man auf dem Raspi auch Windows 10 IoT Core installiert werden kann. Könnte das Raspi am Ende als perfektes Testsystem dienen?
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Du brauchst doch einfach nur den 32bit-Interpreter verwenden.
Sec
User
Beiträge: 16
Registriert: Montag 24. März 2014, 22:53

Der führt die Extensions aber nicht aus!
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die müssen dann auch schon 32 Bit sein. C compiliert ja auch für beides. Wenn man’s kann & will.
Benutzeravatar
darktrym
User
Beiträge: 785
Registriert: Freitag 24. April 2009, 09:26

@sparrow: Ich würde schon auf dem Pi 64Bit installieren. Die Optimierungen sind wesentlich näher an der Hardware als die 32Bit Kompilate.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Sec
User
Beiträge: 16
Registriert: Montag 24. März 2014, 22:53

Es heißt zwar "Besser ARM dran, als PIN ab", aber Software für einen ARM brauch ich gar nie nicht. Deshalb das Ganze jetzt nochmal von vorn:
Ich habe hier genau eine Windows-Maschine zum Testen, die seit Jahren mit 10 auf 64 Bit läuft. Die Kiste ist bis zum Anschlag mit 64 Bit-Ware voll (unter anderem alleine schlappe 7 GB für Visual Studio mit Windows SDK und Clang-Compiler). Diesen PC mit Win10 32 Bit neu zu installieren ist ausgeschlossen. Bleibt eigentlich nur einen zusätzlich Windows PC zu beschaffen und den mit 32 Bit-Ware zu installieren.
Und wozu das Ganze? Damit ich dann meine App auch für 32 Bit Windows PCs anbieten kann? Wer verdammt nochmal hat noch so eine antike
Pferdedroschke mit Röhrenfernseher
? Klar in Caracas in einem virenverseuchten Internet-Cafe stehen wahrscheinlich nur 32 Bit Kisten. Aber es kommt ganz sicher kein armer Latino auf die Idee sich unsere PC-App zu kaufen und für alle gilt: Bist Du erst mal auf 64 Bit gehst Du nicht mehr zurück auf 32.
Also: Wer braucht für seinen PC eine 32 Bit App? Du?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich hab’s zwar schon erwähnt, aber Wiederholung hilft ja gelegentlich: DU MUSST KEINEN 32 BIT RECHNER AUFSETZEN. DU MUSST NUR 32 BIT SOFTWARE AUF DEM 64 BIT SYSTEM INSTALLIEREN. ERWEITERUNGEN INKLUSIVE. OB DAS NOTWENDIG IST KANN HIER KEINER WISSEN, DENN KEINER KENNT DEINE SOFTWARE UND WEISS WER SIE BENUTZT, UND DARUM WISSEN WIR AUCH NICHT, OB IN CARACASS ODER AN DER ANTARKTIK PANIK AUSBRICHT, WEIL DIE FRUCHT DEINET PROGRAMMIERLENDEN NUR IN 64BIT DAHERKOMMT.

Jetzt klar?
Sec
User
Beiträge: 16
Registriert: Montag 24. März 2014, 22:53

Na klar doch und irgendwo im breiten Baum vergesse ich dann die Compileroption "-m32" und lasse das ganze Ding dann ungetestet los. SCHREI DOCH NOCHMAL, ES WAR SO SCHON.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was hat denn ungetestet damit zu tun? Das Testprotokoll für 64 Bit und 32 Bit unterscheidet sich doch nicht. Natürlich muss man es pro Konfiguration tun. Wie auch für den mac. Und AMIGA OS. Etc.
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@darktrym: Was genau bringt das denn? Im Raspi-Blog stand damals, dass sie es probiert haben und es keinen signifikanten Gewinn gab, sondern das hauptsächlich einfach nur der Speicherverbrauch gestiegen ist.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Es kann etwas bringen bei Verwendung bestimmter SIMD Berechnungen. Da gibt’s bestimmte Instruktionen nur mit v8 AArch64. Aber Feld-wald-und-wiesen-Systeme haben nur mehr speicherdruck.
Antworten