Przenoszenie kodu rodzimego z 31-bitowego do 64-bitowego systemu

Jeśli aplikacja Java™ korzysta z kodu rodzimego, należy najpierw upewnić się, że kod rodzimy nadal działa poprawnie, gdy jest on importowany do środowiska 64-bitowego. Należy również wprowadzić odpowiednie zmiany w celu zapewnienia, że kod rodzimy działa z 64-bitowymi wersjami JNI i JVMTI.

Zapoznaj się z dokumentacją dotyczącą używanego systemu operacyjnego oraz kompilatorem C/C + +, aby uzyskać informacje o zmianach, które są wymagane do obsługi kodu portu z wersji 32-bitowej do 64-bitowej.

Należy również upewnić się, że typy danych są poprawnie wyrównane. Niepoprawne wyrównanie może spowodować poważną utratę wydajności kodu. Poprawne wyrównanie dla różnych typów danych jest przedstawione w poniższej tabeli:

Tabela 1. Wielkość lub wyrównanie typów danych C i C++
 Typ danych C/C++ Wyrównanie w 31-bitowych systemach operacyjnych z/OS Wyrównanie w 64-bitowym systemie operacyjnym z/OS
Znak 1/1 1/1
short 2/2 2/2
int 4/4 4/4
long 4/4 8/8
długa długa 8/8 8/8
problemów dotyczących 4/4 8/8
Liczba zmiennopozycyjna 4/4 4/4
podwójne 8/4 8/4
długie podwójne 16/16 16/16

Gdy kod rodzimy został dostosowany w celu uwzględnienia różnic między 31-bitowymi systemami i systemami 64-bitowymi, należy dostroić kod, aby uwzględnić różnice w interfejsach do maszyny VM Java: JNI i JVMTI.