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:
| 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.