Ich war überrascht, in der Java-Quelle zu sehen, dass System.arraycopy eine native Methode ist.Warum ist System.arraycopy in Java nativ?
Natürlich ist der Grund, weil es schneller ist. Aber welche nativen Tricks kann der Code verwenden, der ihn schneller macht?
Warum nicht einfach über das ursprüngliche Array schleifen und jeden Zeiger auf das neue Array kopieren - sicher ist das nicht so langsam und umständlich?
@ Peter, so innerhalb nativen Code können Sie mit dem Java-Speichermodell verarbeiten? (Ich hatte noch nie einen Grund, einen einheimischen Malarkey zu machen) –
@James B, ich bin kein Experte dafür, aber im nativen Code sind Sie sicherlich nicht durch das Java-Speichermodell oder irgendetwas eingeschränkt - Sie können mit dem Raw herumspielen Bits, wie Sie möchten (auf eigene Gefahr, natürlich). –
Tatsächlich konnten nur einige Subcases von 'arraycopy' mit' memcpy'/'memmove' implementiert werden. Andere erfordern eine Laufzeittypüberprüfung für jedes kopierte Element. –