Autor Beitrag
Knulli
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 116
Erhaltene Danke: 2

Win2k, Win7, Win10
D5, D2005, D2006, D2007, D10.4.2
BeitragVerfasst: Mo 26.08.13 13:06 
Hi Leute,

ich denke, es wird langsam Zeit auch in 64 die bittige Welt einzusteigen. Ich weiß aber auch nicht, ob es wirklich Vorteile bringt.
Gibt es irgendwelche Gemeinheiten, die auf mich warten, wenn ich in die 64 Bit Welt einsteigen will?

Wir haben bisher mit D2007 Win32 VCL Anwendungen geschrieben. Hat jemand sowas schon erfolgreich migriert? Wo liegen Fallstricke und wo kann es in endloser Arbeit ausarten?

Ab welcher Version ist 64 Bit drin?

Brauche ich getrennte Setups für 32 und 64 Bit? Gibts Optionen wie: Soll zum Schluß auf 32 Bit UND 64 Bit Windows laufen?

mfg Knulli
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mo 26.08.13 13:12 
Mal doof gefragt: welche Vorteile erwartest Du denn davon, 64 bit Kompilate erstellen zu können?

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)

Für diesen Beitrag haben gedankt: Martok, Mathematiker, zuma
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mo 26.08.13 22:40 
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
Mal doof gefragt: welche Vorteile erwartest Du denn davon, 64 bit Kompilate erstellen zu können?


steht doch da: Er weiß nicht welche Vorteile das bringt.

Ich weiß nicht was Du für Software machst, aber wenn Du bisher nicht den Bedarf hast 64Bit Versionen an deine Kunden zu liefern, dann brauchst Du das auch nicht. Allerdings denke ich persönlich, dass in den aktuellen Versionen genug Vorteile dabei sind, dass es sich lohnt auf ein XE5 (das die nächsten Wochen kommt) umzusteigen (z.B. ClassHelpers, IDE Funktionen, For-Each, Generics,....).

Dann kannst Du auch problemlos mal eine 64bit Version erstellen. Allerdings musst Du halt die Unicode-Hürde nehmen (incl. Komponenten von Dritthersteller). Bücher usw. hat Marco Cantu geschrieben, die lohnen sich mal anzuschauen...

Nachtrag: Ich habe ein Delphi 7 Programm auf XE migriert, ein Delphi 5 Programm kommt im nächsten halben Jahr dran.
MeierZwoo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 94
Erhaltene Danke: 11

Win 7, DOS5
Delphi 2007 Architect, BP7/TP5, LISP, PS
BeitragVerfasst: Mo 26.08.13 23:08 
Knulli, die Fallstricke lauern nicht so sehr bei 32bit auf 64bit, sondern in deinem Fall von 2007 Nicht-Unicode zu Unicode, wie auch schon gesagt wurde.

Bei einem Wechsel auf höhere Bit-Werte kann es, egal von welchem BitWert (8, 16, 32) Probleme mit abgespeicherten Daten geben, die per Puffer und nicht ausgerichtet weggeschrieben wurden, weil dann die Datentypen andere Größen aufweisen können (zB speziell Integer unter 16 Bit 2 Byte, unter 32 bit 4 Byte ... ). Welche Datentypen sich von 32 auf 64 Bit ändern, weiß ich nicht, ich hab das eben nur beim Integer bei 16 auf 32 gemerkt, und bei als Puffer weggeschriebenen Typen.

Dasselbe gilt bei dir auch durch nicht-Unicoe zu Unicode: ein "Char" hat dann size=2 statt vorher 1, und ein "string" dann const size=4 (32bit) (weil nun Pointer), der Zugriff auf string[0] (vorher Längenbyte) liefert nun einen Fehler usw. usw..
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 26.08.13 23:09 
Hallo,
user profile iconLemmy hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
Mal doof gefragt: welche Vorteile erwartest Du denn davon, 64 bit Kompilate erstellen zu können?

steht doch da: Er weiß nicht welche Vorteile das bringt.

Und genau so geht es mir. Mit meinem steinalten Delphi 5 frage ich mich dies auch.
user profile iconLemmy hat folgendes geschrieben Zum zitierten Posting springen:
Nachtrag: Ich habe ein Delphi 7 Programm auf XE migriert, ein Delphi 5 Programm kommt im nächsten halben Jahr dran.

Schön wäre es, wenn Du sagen könntest, was es gebracht hat. Dass die modernen "Delphi" mehr Möglichkeiten in der Programmierung bieten, ist mir schon klar, aber lohnt es sich, funktionierende Programme auf 64 bit umzustellen.

Konkret: Werden die Programme schneller oder stabiler? Oder was sonst?
Natürlich ist mir klar, dass irgendwann die 32bit-Programme das gleiche Schicksal ereilt, wie jetzt die 16bit-Programme. Irgendeine Windows-Version wird sie in Zukunft nicht mehr abarbeiten.
Aber bis dahin?

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
MeierZwoo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 94
Erhaltene Danke: 11

Win 7, DOS5
Delphi 2007 Architect, BP7/TP5, LISP, PS
BeitragVerfasst: Mo 26.08.13 23:36 
Ich hatte vorkurzem 32bit vs. 64bit Win getestet: Ergebnis: keins

Bei 64bit Programmen ist wohl z.Z. der einzige Vorteil der wesentlich größere
Datenbereich, was sich z.b. bei Arrays etc. bemerkbar macht.

Mathematiker, bei deinem "steinalten" Delphi 5 ist wohl Unicode das Problem bei Umstieg.

Es ist auch auffällig, daß viele kommerzielle Anbieter von Units für Delphi vor 2009/Unicode ihre Pflege eingestellt haben, entweder nur bis 2007 anbieten oder den 2007-Quellcode freigegeben haben.

Dasselbe gilt auch für Anwendungsprogramme, bei denen der Übergang zu Unicode ziemlich holprig verlief - vorallem wg. der dümmlichen M§ "Strategie", nicht ganz auf UTF-8 zu setzen sondern Big/Little-Indian incl. BOM zu pflegen.
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Di 27.08.13 06:34 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:


Schön wäre es, wenn Du sagen könntest, was es gebracht hat. Dass die modernen "Delphi" mehr Möglichkeiten in der Programmierung bieten, ist mir schon klar, aber lohnt es sich, funktionierende Programme auf 64 bit umzustellen.

Konkret: Werden die Programme schneller oder stabiler? Oder was sonst?
Natürlich ist mir klar, dass irgendwann die 32bit-Programme das gleiche Schicksal ereilt, wie jetzt die 16bit-Programme. Irgendeine Windows-Version wird sie in Zukunft nicht mehr abarbeiten.
Aber bis dahin?


da es sich hierbei um 2 "kleine" Datenbankanwendungen handelt, lohnt es sich nicht, diese auf 64bit umzustellen, weil weder die Anforderung der DB nach 64 bit (wegen der Möglichkeit mehr RAM zu verwenden) noch der der Anwendung da ist, diese "nativ" laufen zu lassen.

Für mich wichtigster Grund (nach den neuen Features) umzusteigen ist, dass ich endlich die alte IDE los werde und damit auch XP, weil Delphi 5 und 7 mir auf aktuellen OS das Problem bereiten, nach einem halben Jahr schlicht weg nicht mehr zu funktionieren.

Da ich zumindest eines der Programme von Grund auf gemacht habe, weiß ich, dass ich dort keinerlei krumme Dinger gedreht habe und deshalb weiß ich, dass ich davon ohne Probleme eine 64bit Anwendung machen kann. d.h. es wird dann vermutlich davon eine 64bit Version geben, die im Grunde aber nur ein Abfallprodukt ist, weil ich keinerlei Umstellungsaufwand (Pointer usw) habe.

Und die Zukunft? Die kommt schneller als man denkt: letztes Jahr hatte ich eine Anfrage eine 16Bit Software (Delphi 1) auf 32/64 bit umzustellen. Die Software steuerte bzw nahm Messwerte eines Geräts entgegen. Warum denn mit der Umstellung auf eine aktuelle IDE so lange warten bis es wirklich gar nicht mehr anders geht? Der Aufwand wächst ins Unermessliche bzw. endet am Schluss in der Neuentwicklung....


Grüße
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Di 27.08.13 07:25 
Also ich habe meine Software (Datenbankanwendung) auch lange gesträubt, auf 64bit anzuwenden. Dabei arbeite ich immer noch mit Delphi 5. Somit ist wohl die Software immer noch eine 32bit-Software. Sie läuft aber problemlos auf 64-bit Windows 7. Das hätte ich im Leben nicht gedacht. Ich weiß nicht, ob man unbedingt alles auf 64-bit umstellen muss. Gerade Messwertübernahme ist fragwürdig, da oft die Komponenten dafür uralt sind (tewilweise noch RS232 oder USB-RS232-Emulationen). Bei uns ist der größte Teil der Messwertsoftware noch 32-bit.

Aber sicher wird in Zukunft alles auf 64-bit umgestellt. Nur wie lange das dauert, ist in den Sternen.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 27.08.13 07:54 
Genau darauf, wie sich die Diskussion entwickelt, wollte ich raus. Wenn man nicht weiß, welche Vorteile man von 64bit hat, dann braucht man es vermutlich nicht.

Die Vorteile sind ja schnell abgesteckt:
der größere Speicherbereich den man theoretisch nutzen kann. Der größte Teil der Anwendungen werden aber schon den heute zur Verfügung stehenden Speicherbereich nicht wirklich ausnutzen. Schonmal gar nicht ein Datenbankanwendung, wenn da nicht irgendwas mit Grafikbearbeitung und Videobearbeitung, etc. drin ist.
Und dann ist da noch die Möglichkeit, Services zu entwickeln, die auf einem 64bit-System auch so kompiliert sein müssen.

Ansonsten laufen eigentlich alle "normalen" Anwendungen als 32-bit-Kompilate problemlos auf 64-bit-Systemen, wenn man die paar Hürden mit den unterschiedlichen Ordnern (Program Files vs. Program Files (x86) und der Registry (wenn das Programm aus der 32-bit-Anwendung auf einen 64-bit-Schlüssel zugreifen möchte).

Fallen euch weitere Vorteile ein? Mir nicht.

Unbestritten ist natürlich, dass die neuere IDEs angenehmer zu bedienen sind, weil sie neue, wirklich nützliche, Features haben und es natürlich auch wirklich feine neue Sprachfeatures gibt. Da kann natürlich der Wunsch keimen, alle eigene Software auf eine aktuelle Version zu migrieren, um die alten Entwicklungsumgebungen "los zu werden".

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 27.08.13 08:34 
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
Fallen euch weitere Vorteile ein? Mir nicht.
Fließkommaberechnungen sind drastisch schneller. Andere Sachen sind teilweise eher leicht langsamer, aber das fällt meistens kaum ins Gewicht. Wenn man aber viele Fließkommaberechnungen macht, ist deren Beschleunigung meistens deutlich spürbar.

Weitere Vorteile bei 64-Bit sind z.B. die sauberen Stackframes und die einheitliche Aufrufkonvention.
Knulli Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 116
Erhaltene Danke: 2

Win2k, Win7, Win10
D5, D2005, D2006, D2007, D10.4.2
BeitragVerfasst: Mi 30.10.13 10:53 
Ich glaube, daß mit dem größeren Speicherbereichen ist schon nicht zu verachten.
Ich hatte in der Vergangenheit des öfteren schon mal irgendwelche Messungen von Kunden gehabt, die in der Analyse ein "Out of Memory" erzeugt haben, weil ich eben die ganze Datei (bis zu mehreren hundert MB lang) in den RAM geladen habe (Array of irgend ein Record), bevor analysiert wird.

unicode vs. non unicode:
Bestehen nun alle strings aus 2 Byte Zeichen, bzw. alle Zeichen aus zwei Byte? Ich hab mal was von MBCS (war noch zu Visual Basic Zeiten) gehört, wo es noch vom Zeichen selber abhängt, ob ein ODER(!!) zwei Byte verwendet werden. Klingt zum Kot..n!!
Ist das auch Unicode??? Heißt das, daß man sich mit solchen Dingen rumärgern muß?

Was ist mit Aufrufen der Windows-API? Muß das auch alles umgefummelt werden?

@jaenicke: erklär mal "Stackframes"

Knulli
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 30.10.13 16:30 
user profile iconKnulli hat folgendes geschrieben Zum zitierten Posting springen:
Bestehen nun alle strings aus 2 Byte Zeichen, bzw. alle Zeichen aus zwei Byte? Ich hab mal was von MBCS (war noch zu Visual Basic Zeiten) gehört
In Delphi sind es derzeit immer zwei Byte für UnicodeStrings, aber das ist nicht in Stein gemeißelt, so dass man immer mit SizeOf(Char) arbeiten sollte.

user profile iconKnulli hat folgendes geschrieben Zum zitierten Posting springen:
Was ist mit Aufrufen der Windows-API? Muß das auch alles umgefummelt werden?
Wenn sie sauber programmiert wurden funktioniert es in der Regel ohne Anpassungen.
Sprich ShellExecute mit PChar, ShellExecuteW mit PWideChar, ...
CreateProcess ist eine Ausnahme, da man dort bei der Unicodevariante keinen konstanten String übergeben darf. (Das ist in der Windows API so vorgegeben.)

user profile iconKnulli hat folgendes geschrieben Zum zitierten Posting springen:
@jaenicke: erklär mal "Stackframes"
Das ist etwas umfangreicher...
eli.thegreenplace.ne...me-layout-on-x86-64/