Les performances d'une application en C# construite sur AnyCPU vs plate-forme x64 sur un ordinateur 64 bits
Je dois déployer une application C# sur un ordinateur 64 bits si il y a une faible probabilité qu'il pourrait également être déployé sur un ordinateur 32 bits. Devrais-je construire deux exécutables ciblage x86 et x64 plateforme ou dois-je aller pour un seul exécutable construit ciblage "AnyCPU plate-forme (spécifié dans la propriété du projet de construction de l'option'. Y aurait-il une différence de performance entre un C# assemblée construit ciblage "AnyCPU' est déployé sur un ordinateur 64 bits vs la même assemblée construit ciblant spécifiquement " x64 " plate-forme ?
- Vous pourriez essayer et de comparer les fichiers. Je suppose que la seule différence est le manifeste.
- msdn-blog-anycpu-exe-sont-en général-plus-de la difficulté que theyre vaut
Vous devez vous connecter pour publier un commentaire.
Non, il n'y a pas de différence de performance entre les AnyCPU application s'exécutant sur un Windows 64 bits et x64 application en cours d'exécution sur elle. La seule chose que l'indicateur change sont quelques-unes des options dans l'en-tête de l'assembly compilé et le CLR ne l'utilise qu'à décider de l'utilisation x86 ou x64, rien d'autre
Si vous demandez s'il existe une différence entre x86 application en cours d'exécution sur un Windows 64 bits et x64 (ou AnyCPU), alors la réponse serait oui. Les différences entre les deux sont les suivants:
tail.
instruction (qui, par exemple, C# n'est jamais le cas)Comme une note de côté pour la réponse ci-dessus. Il y peut être des problèmes avec l'utilisation P/Invoke ou DotNetInterop en x86 DLL sur un système d'exploitation x64 à l'aide de AnyCPU. Dans le cas où aucune version 64 bits de la DLL est disponible, il peut être nécessaire de compiler x86 plutôt que AnyCPU que l'OS va essayer de charger la version 64 bits...et de ne pas.