2009-10-06 7 views
2

Mon application Windows est développée sur .NET 2.0 Framework et est construit en utilisant 'Any CPU', l'environnement de développement est OS 32 bits + Visual Studio 2005.Application .NET 2.0 ('Any CPU') fonctionnant lentement sur OS/processeur 64 bits

Maintenant, je déploie cette application sur Processeur 64 bits + OS 64 bits, il est lent.

Mais si je compile en utilisant x86 (32 bits), il fonctionne correctement sans aucun problème sur un processeur 64 bits + un système d'exploitation 64 bits.

J'ai des composants tiers comme DevExpress, Janus, txtext, ComponentOne Zip, etc.

Pourquoi est-il en cours d'exécution lente?

Répondre

1

64 bits ne fonctionneront pas toujours plus vite. La réponse courte est que l'application 64 bits consomme plus de mémoire (si vous avez un tableau de 64 bits, il sera plus grand que le tableau de la même taille avec des pointeurs 32 bits) Plus de mémoire signifie que la récupération de place fonctionnera plus dur.
Lire here et here pour plus de détails.

Dans tous les cas, vous devrez profiler l'application et voir où se trouve le goulot de la bouteille.
(peut-être en regardant le GC est un bon endroit pour commencer)

+0

Salut est-ce bon pour exécuter l'application 32 bits sur 64bit PC? Pritesh –

+0

Il y a un petit succès de performance à cause de WOW3264 (La machine virtuelle pour exécuter des applications 32 bits sur un système d'exploitation 64 bits) mais je ne pense pas que ce soit significatif. Ceci est à partir du deuxième lien que j'ai donné: "Si vous utilisez une application 32 bits sur un système d'exploitation 64 bits, vous obtenez tout l'espace d'adressage 4G et tout cela pourrait être sauvegardé par la mémoire physique (si vous avez la mémoire RAM) même sans utiliser de pointeurs 64 bits. " –