2010-04-14 10 views
1

Je sais que le consideratiosn supplémentaire lors de la compilation pour x64 est que certains types de données, comme ints, peuvent contenir des valeurs plus grandes. Y a-t-il des préoccupations?Autres problèmes lors de la compilation pour x64

VS2010, sorti il ​​y a quelques jours, peut supporter la compilation pour x64 et x32, tout comme VS2008. L'application est x32/86 seulement. Je continue à penser que l'application doit être 64 bits cependant. Qu'est-ce que je rate? Evidemment ce n'est pas le cas.

Merci

+0

Quelle langue ?? –

+0

Les entiers ne contiennent pas de valeurs plus grandes en C# ou en C++. En C++ et int et un long sont encore 32 bits. size_t, ptrdiff_t sont en 64 bits, car les pointeurs sont en 64 bits. En C#, rien ne change, mais la taille des pointeurs (et donc des types IntPtr/UIntPtr aussi). – Eloff

Répondre

0

En ce qui concerne VS2010 (plugins IDE &) ne pas être une application 64 bits, je crois qu'il ya 2 raisons principales -

  1. Si l'application est de 64 bits, les pointeurs et ints consommeraient mémoire deux fois plus que serait pire pour la plupart des gens.

  2. Certaines parties de Visual Studio sont déjà portées sur .NET. Il serait plus simple d'achever le portage sur .NET plutôt que sur le port C/C++ sur x64.

http://blogs.msdn.com/ricom/archive/2009/06/10/visual-studio-why-is-there-no-64-bit-version.aspx

0

raisons de construire pour x86-64:

  • votre application a besoin> 4 Go d'espace d'adresse

  • votre application est la performance critique et pourrait bénéficier de ~ 30% amélioration des performances due à l'augmentation de la taille et du nombre de registres

Si aucune des conditions ci-dessus ne s'applique, il n'y a pas de raison impérieuse de créer une application 64 bits.

+0

@PhiS: preuve empirique, basée sur un code intensif en calcul (principalement des trucs de type traitement d'image) que j'ai testé sur x86 et x86-64 (Intel seulement - peut ne pas s'appliquer à AMD). –

+0

Et certaines applications seront plus lentes sur x64, laissez-moi tirer un certain nombre de mes fesses, disons environ ~ 30% plus lent. Ceci est principalement dû au fait que le cache est relativement plus petit (car les pointeurs nécessitent maintenant le double de la mémoire et de l'espace cache). Donc, à moins de faire beaucoup de calculs, ou d'avoir besoin d'espace d'adressage. – Eloff

+0

@Eloff: Je base ma réclamation de 30% sur les données de référence que j'ai collectées pour les différents bits de code que j'ai développés. Certes, il s'agit surtout de routines de calculs de nombres, mais l'amélioration de 30% des performances avec x86-64 semble être remarquablement cohérente. –