Allgemeine Portierungsrichtlinien
Das Portieren von 32-Bit-Anwendungen auf 64-Bit-Microsoft Windows ist einfacher als das Portieren von 16-Bit-Anwendungen auf 32-Bit-Windows. Der Umzug wird jedoch mit einer gewissen sorgfältigen Planung reibungsloser verlaufen. Im Folgenden sind einige allgemeine Richtlinien aufgeführt.
Planung
Bestimmen Sie die Größe des für den Port erforderlichen Aufwands. Ermitteln Sie, wie viel Arbeit erforderlich ist, indem Sie die folgenden Elemente identifizieren:
- Problem 32-Bit-Code. Kompilieren Sie Ihren 32-Bit-Code mit dem 64-Bit-Compiler, und untersuchen Sie den Umfang der Fehler und Warnungen.
- Freigegebene Komponenten oder Abhängigkeiten. Ermitteln Sie, welche Komponenten in Ihrer Anwendung aus anderen Teams stammen und ob diese Teams 64-Bit-Versionen ihres Codes entwickeln möchten.
- Legacy- oder Assemblycode. 16-Bit-Windows-basierte Anwendungen werden unter 64-Bit-Windows nicht ausgeführt und müssen neu geschrieben werden. Während x86-Assemblycode in WOW64 ausgeführt wird, können Sie diesen Code umschreiben, um die Geschwindigkeit der Intel Itanium-Architektur zu nutzen.
Portieren Sie die gesamte Anwendung, nicht nur Teile davon.
Obwohl es möglich ist, Teile einer Anwendung zu portieren oder Code mit /LARGEADDRESSAWARE:NO auf 2G zu beschränken, handelt diese Strategie kurzfristige Gewinne gegen langfristige Schmerzen.
Hinweis
/LARGEADDRESSAWARE:NO wird für eine ARM64-Binärdatei ignoriert.
Suchen Sie Ersatz für Technologien, die nicht portiert werden.
Einige Technologien, einschließlich DAO (Data Access Object) und die Jet Red-Datenbank-Engine, werden nicht auf 64-Bit-Windows portiert.
Behandeln Sie Ihre 64-Bit-Version als separates Produktrelease.
Auch wenn Ihr 64-Bit-Produkt möglicherweise dieselbe Codebasis wie Ihre 32-Bit-Version verwendet, muss es zusätzliche Tests durchführen und möglicherweise andere Releaseüberlegungen berücksichtigen.
Entwicklung
Beginnen Sie jetzt mit der Entwicklung von kompatiblem Code.
Entwickler können mit dem Schreiben von kompatiblem Code beginnen, indem sie die neuesten Windows-Headerdateien und die neuen Datentypen ohne negative Auswirkungen auf die 32-Bit-Produktentwicklung verwenden. Weitere Informationen finden Sie unter Vorbereiten für 64-Bit-Windows.
Stellen Sie sicher, dass Ihr Code sowohl für 32- als auch für 64-Bit-Windows kompiliert werden kann.
Das neue Datenmodell wurde so konzipiert, dass 32- und 64-Bit-Anwendungen mit wenigen Änderungen aus einer einzigen Codebasis erstellt werden können. Die SQL Server- und Windows-Entwicklungsteams entwickeln 32- und 64-Bit-Versionen ihrer Produkte aus derselben Codebasis.
Verwenden Sie die neuen Optimierungsfeatures des Compilers, um eine optimale Leistung zu erzielen.
Die Codeoptimierung für Intel Itanium-Prozessoren ist wichtiger als beim x86. Der Compiler übernimmt viele der Optimierungsfunktionen, die zuvor vom Mikroprozessor verarbeitet wurden. Sie können die Leistung einer 64-Bit-Anwendung maximieren, indem Sie zwei neue Optimierungsfeatures des Compilers verwenden: Profilgesteuerte Optimierung und Optimierung des gesamten Programms. Beide Features führen zu längeren Buildzeiten und erfordern die frühzeitige Entwicklung guter Testszenarien.
Profilgesteuerte Optimierung umfasst einen zweistufigen Kompilierungsprozess. Während der ersten Kompilierung wird der Code instrumentiert, um das Ausführungsverhalten zu erfassen. Diese Informationen werden während der zweiten Kompilierung verwendet, um alle Optimierungsfeatures zu leiten.
Die gesamte Programmoptimierung analysiert den Code in allen Anwendungsdateien, nicht nur in einer einzigen. Dieser Ansatz erhöht die Leistung auf verschiedene Arten, einschließlich besserer Inlineierung sowie verbesserter Nebeneffektanalyse und benutzerdefinierten Aufrufkonventionen.
Testen
Ermitteln Sie, ob Sie 64- oder 32-Bit-Code testen, der in WOW64 ausgeführt wird.
Einige Anwendungen enthalten nativen 64-Bit-Code und 32-Bit-Code, der in WOW64 ausgeführt wird. Untersuchen Sie dies genau, während Sie einen Testplan entwickeln, und entscheiden Sie, ob Ihre Testtools 64-Bit, 32-Bit oder eine Kombination sein sollten. Sie müssen häufig sowohl die 64- als auch die 32-Bit-Version Ihrer Anwendung unter 64-Bit-Windows testen.
Testen Sie häufig verwendete 32-Bit-Komponenten.
Kompilieren Sie zunächst Ihren Code neu in 64-Bit, und testen Sie ihn. Zweitens beheben Sie Probleme, kompilieren Sie in 32-Bits neu, und testen Sie dann. Drittens kompilieren Sie erneut zu 64-Bit, und testen Sie.
Testen Sie COM- und RPC-Komponenten.
Stellen Sie sicher, dass sowohl 32- als auch 64-Bit-COM- und RPC-Komponenten ordnungsgemäß kommunizieren. Möglicherweise müssen Sie auch die Kommunikation mit 16-Bit-Komponenten über ein Netzwerk testen.
Testen Sie Ihre 32-Bit-Version unter 64-Bit-Windows.
Kunden können weiterhin 32-Bit-Anwendungen unter 64-Bit-Windows verwenden, bei denen Leistungs- und Arbeitsspeicherprobleme keine wichtigen Überlegungen sind.
Testen Sie verschiedene Speicherkonfigurationen.
Das Hinzufügen großer Mengen an Arbeitsspeicher auf dem Server macht manchmal zuvor unbemerkte Probleme in der Anwendung oder dem Betriebssystem verfügbar.