|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 20025
|
Quote:
![]()
__________________
Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza (O.W.) |
|
![]() |
![]() |
![]() |
#22 | |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 6017
|
Quote:
In questi casi il codice binario x86 invece di essere decodificato dalla cpu viene letto da un compilatore come se fosse un sorgente (codificato in binario invece che come testo) e le istruzioni x86 "decodificate in software" vengono convertite in un formato intermedio simbolico che poi viene poi compilato in codice binario per ARM. E' in poche parole come quando si fa la compilazione JiT oppure AoT del bytecode CIL di .Net o del bytecode JVM di Java, solo che invece di usare un bytecode "ottimizzato per essere ricompilato" si usa il formato delle istruzioni x86 (che non e' stato ottimizzato per questo e quindi è più complesso da gestire, specialmente perche invece di una VM "pulita" ha come modello di esecuzione quello delle cpu x86 con tutte le loro peculiarità). |
|
![]() |
![]() |
![]() |
#23 |
Senior Member
Iscritto dal: Aug 2001
Città: Novara (NO)
Messaggi: 20054
|
calcola che in macchine del genere possono farli andare a freq più alte che negli spazi risicati dei cellulari non si può.
__________________
ASUS N76VZ +crucial m500 Dell Latitude E5430 iPad 2017 Huawei nova 5t con Very samsung tv 55m5500 ps4,wiiu exVODA 82/18-78/16-77/13-90/11 exWIND 95/14-95/19-85/19-81/22 fritzbox 7490 su Tiscali 936/288 |
![]() |
![]() |
![]() |
#24 |
Senior Member
Iscritto dal: Jun 2001
Città: Pavia
Messaggi: 24888
|
Se non spremi la gpu, la frequenza cala di ben poco, l'835 è un soc veramente poco energivoro.
|
![]() |
![]() |
![]() |
#25 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Una compilazione AoT di un eseguibile x86/x64 (ma vale per qualunque qualunque architettura) in genere non è possibile, perché normalmente un binario non si porta mai dietro sufficienti informazioni per identificare tutti i pezzi di codice / funzioni / metodi al suo interno. Per ottenere tutte queste informazioni non basta partire dal punto di avvio (entry point in gergo) e tracciare via via tutte le routine eseguite: funziona bene soltanto per codici molto semplici, che contengono esclusivamente istruzioni di salto a funzioni/metodi statici (le istruzioni referenziano direttamente la locazione di memoria da eseguire). Ma il codice di un'applicazione "di spessore" usualmente impiega puntatori a funzioni/metodi e tabelle di puntatori a funzioni/metodi, che potrebbero anche cambiare valore durante l'esecuzione; in questi casi non si può far altro che tracciare l'esecuzione finché non si arriva all'istruzione di salto che fa uso del puntatore a funzione, leggere finalmente l'indirizzo a cui saltare, e se non è stato ancora compilato provvedere ad analizzare il frammento e convertirlo finalmente in un frammento dell'architettura nativa. Dunque, e per concludere, una compilazione AoT di un binario "non banale" si potrebbe fare se e solo, durante tutte le volte che è stato eseguito, alla fine si è riusciti a mappare tutti i suoi frammenti di codice. In questo caso, avendo ormai la mappa di tutto, sarebbe possibile tirare fuori direttamente un eseguibile per l'architettura nativa, buttando via il binario originale. C'è una sola eccezione a tutto questo discorso, ed è rappresentata dalle applicazioni che generano codice dinamicamente. Ad esempio WinUAE, un emulatore Amiga, che compila dinamicamente codice Motorola 68K in frammenti x86 o x64 (a seconda del binario utilizzato). In questo caso l'applicazione x86/x64 genera ed esegue al volo frammenti di codice x86 o x64, a seconda di quando gli servono. Questo significa che una compilazione AoT di WinUAE x86/x64 per ARMv8 non sarà mai possibile (per essere precisi, sarebbe possibile convertire l'intero binario x86/x64, ma il JIT x86/x64 -> ARMv8 dovrà essere sempre attivo per intercettare i casi in cui venga richiamato codice x86/x64 generato dinamicamente).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:58.