Risoluzione dei problemi di compatibilità dei programmi su Arm
I PC basati su Arm offrono un'ottima compatibilità con le applicazioni e ti permettono di eseguire le tue applicazioni win32 x86 non modificate. Le applicazioni Arm vengono eseguite in modo nativo senza emulazione, mentre le applicazioni x86 e x64 vengono eseguite in emulazione sui dispositivi Arm.
Tuttavia, a volte l'emulazione esegue delle ottimizzazioni che non portano alla migliore esperienza dell'utente. Puoi utilizzare il programma Compatibility Troubleshooter per modificare le impostazioni di emulazione della tua applicazione x86 o x64, riducendo le ottimizzazioni predefinite e potenzialmente aumentando la compatibilità.
Avvia la risoluzione dei problemi di compatibilità dei programmi
Avvia il Program Compatibility Troubleshooter manualmente nello stesso modo su qualsiasi PC Windows: fai clic con il tasto destro del mouse su un file eseguibile (.exe) e seleziona Troubleshooting compatibility. Avrai quindi la possibilità di Provare le impostazioni consigliate per eseguire un test del programma utilizzando le impostazioni di compatibilità consigliate oppure Risolvere il programma per scegliere le impostazioni di compatibilità in base a problemi specifici che hai notato.
Se selezioni Risoluzione dei problemi del programma, avrai la possibilità di selezionare:
- Il programma funzionava nelle versioni precedenti di Windows, ma ora non si installa e non viene eseguito
- Il programma si apre ma non viene visualizzato correttamente
- Il programma richiede ulteriori permessi
- Non vedo il mio problema elencato
Tutte le opzioni attivano le impostazioni applicabili e applicate ai PC Desktop Windows. Inoltre, la prima, la seconda e la quarta opzione applicano le impostazioni di emulazione Disable application cache
e Disable hybrid execution mode
. (Per le descrizioni, consulta la tabella delle impostazioni di emulazione riportata di seguito)
Modifica delle impostazioni di emulazione
Avviso
Modificando le impostazioni di emulazione, l'applicazione potrebbe bloccarsi inaspettatamente o non avviarsi affatto.
Puoi modificare le impostazioni di emulazione cliccando con il tasto destro del mouse sull'eseguibile e selezionando Properties.
Su ARM, una sezione intitolata Windows 10 on ARM o Windows 11 on ARM sarà disponibile nella scheda Compatibilità . Seleziona Cambia le impostazioni dell'emulazione per aprire la finestra delle proprietà dell'emulazione.
La finestra Proprietà delle emulazioni offre due modi per modificare le impostazioni dell'emulazione. Puoi selezionare un gruppo predefinito di impostazioni di emulazione o selezionare l'opzione Usa impostazioni avanzate per consentire la scelta di impostazioni individuali.
Le seguenti impostazioni di emulazione riducono le ottimizzazioni delle prestazioni a favore della qualità e possono essere utilizzate per testare la compatibilità della tua applicazione x86 o x64 quando viene eseguita in Windows su Arm.
Seleziona Usa le impostazioni avanzate per scegliere le singole impostazioni descritte in questa tabella.
Impostazione dell'emulazione | Risultato |
---|---|
Disattiva la cache dell'applicazione | Il sistema operativo metterà in cache i blocchi di codice compilati per ridurre l'overhead dell'emulazione nelle esecuzioni successive. Questa impostazione richiede che l'emulatore ricompili tutto il codice dell'applicazione in fase di esecuzione. |
Disabilita la modalità di esecuzione ibrida | I binari Compiled Hybrid Portable Executable (CHPE) sono binari compatibili con x86 che includono codice nativo Arm64 per migliorare le prestazioni, ma che potrebbero non essere compatibili con alcune applicazioni. Questa impostazione forza l'uso di binari solo x86. |
Protezioni aggiuntive per l'emulazione leggera | Un aggiornamento generale che riguarda aspetti come i metadati volatili che possono avere un impatto sulle prestazioni quando si esegue un'applicazione x86 o x64 in emulazione. |
Supporto rigoroso del codice automodificante | Abilita questa opzione per garantire che qualsiasi codice automodificante sia supportato correttamente nell'emulazione. Gli scenari più comuni di codice automodificante sono coperti dal comportamento predefinito dell'emulatore. L'abilitazione di questa opzione riduce significativamente le prestazioni del codice automodificante durante l'esecuzione. |
Disattiva l'ottimizzazione delle prestazioni della pagina RWX | Questa ottimizzazione migliora le prestazioni del codice sulle pagine leggibili, scrivibili ed eseguibili (RWX), ma potrebbe essere incompatibile con alcune applicazioni. |
Disabilita l'ottimizzazione JIT (solo per le applicazioni x64) | Questa funzione non è più utilizzata e sarà rimossa nelle prossime versioni del Troubleshooter. |
Disattiva l'ottimizzazione in virgola mobile (solo per le applicazioni x64) | Controlla per emulare la virgola mobile x87 con una precisione di 80 bit, ma con un costo in termini di prestazioni. x87 è un coprocessore a virgola mobile utilizzato in alcuni vecchi processori x86 per eseguire aritmetiche a virgola mobile utilizzando un formato a virgola mobile a 80 bit con una precisione maggiore rispetto al formato a 32 o 64 bit. |
Puoi anche modificare il modo in cui l'applicazione utilizza i core multipli della CPU, selezionando tra Veloce, Rigoroso funzionamento multi-core, Molto rigido o Forza funzionamento single-core. Prova l'emulazione delle tue applicazioni quando esegui Windows su Arm con queste impostazioni se noti problemi di compatibilità.
Queste impostazioni modificano il numero di barriere di memoria utilizzate per sincronizzare gli accessi alla memoria tra i core nelle applicazioni durante l'emulazione. veloce è la modalità predefinita, ma le opzioni rigoroso e molto rigoroso aumentano il numero di barriere. Questo rallenta l'applicazione, ma riduce il rischio di errori. L'opzione single-core rimuove tutte le barriere ma obbliga tutti i thread dell'applicazione a girare su un singolo core.
Se la modifica di un'impostazione specifica risolve il tuo problema, invia un'e-mail a woafeedback@microsoft.com con i dettagli, in modo che possiamo incorporare il tuo feedback.