Forse mi manca un punto importante della piattaforma x64 qui, ma la mia percezione era che le applicazioni x64 erano solo migliori delle versioni x86 (su un sistema x64 e hardware, ovviamente) quando grandi quantità di memoria, puntatori di grandi dimensioni o altri fattori impegnativi sono stati coinvolti.Devo fornire una build x64 della mia applicazione?
Tuttavia, ho iniziato a notare alcune applicazioni più piccole che offrono versioni x64 dei loro programmi di installazione oltre alle versioni x86 standard. Poiché x86 funziona bene su Windows x64 usando WoW, c'è qualche vantaggio nel rilasciare una versione compilata x64 della mia applicazione? Come la vedo io:
Pro:
- Potenzialmente prestazioni più elevate (in quali condizioni, però)
Contro:
- accumulo supplementare per creare/supporto
- Potenziali bug in target x64 che non sono presenti nella destinazione x86
- La dipendenza da versioni x64 di DLL vendor/OS, che richiede diverse installare lista di controllo e l'introduzione di complicazioni di risoluzione dei problemi
Quali sono alcuni motivi validi che dovrebbe causare me per riconsiderare l'aggiunta di una versione x 64 compilata di mia app?
Hmm - Non avevo considerato che i bug aggiuntivi rilevati come * beneficio *, ma suppongo che in un certo senso, sia - sono non sono stati creati bug, ma solo bug scoperti. Forse lo offrirò per questa ragione, ma non sembra che ci sia un lato negativo nell'offrire uno, anche se potrebbe non essere molto al rialzo per la mia piccola applicazione. – SqlRyan
Si noti che il "vantaggio automatico" delle applicazioni .NET entra in gioco solo se si compila per AnyCPU (es. MSIL), e solo se non si utilizza Interop. Se si sta sviluppando su un 32 bit, compilando per AnyCPU e utilizzando l'interoperabilità a 32 bit, tutto funziona peachy finché non viene eseguito su un 64 bit, quindi "nessun test aggiuntivo richiesto" dipende realmente dall'applicazione in questione. –
Ma se sto usando solo il codice .NET gestito, lo sviluppo su una workstation x64 e la compilazione su AnyCPU, allora c'è bisogno di una transizione? La versione che sto compilando mira già a qualunque framework sia utile, quindi non dovrebbe fare alcuna differenza. Riconosco che è più complicato in situazioni non gestite o target-compilate. – SqlRyan