2017-01-17 1 views
3

Historiquement nous avons eu des problèmes avec le manque de mémoire de RAD studio qui ne se produit plus avec XE10 Seattle. Nous avons beaucoup de nos propres composants qui n'ont jamais été testés pour une grande mémoire et n'en ont pas besoin quand ils sont intégrés dans nos applications MAIS nous avons récemment eu une erreur IDE due à l'instanciation d'un composant instancié à une adresse ci-dessus 2 Go (que nous avons fixé). J'ai l'impression d'avoir lu quelque part qu'Embarcadero dispose d'une méthode pour tester RAD Studio (option de ligne de commande ??) pour une meilleure compatibilité de la mémoire mais ne trouve nulle part la référence. Est-ce que quelqu'un sait comment forcer l'allocation de position de mémoire plus élevée dans l'EDI pour vérifier le comportement de temps de conception de notre ensemble de composants ou alternative une manière de tester dans une application autre que l'écriture de toute la mémoire inférieure. J'ai essayé l'option "allouer depuis le haut" dans FastMM, mais cela commence juste à partir de 2 Go vers le bas, même lorsque l'exécutable est configuré pour une utilisation en mémoire plus élevée.Test de mémoire sensible dans l'EDI

+1

- * ".. FastMM mais cela commence juste à partir de 2 Go." *. - Tout ce que fait FastMM est d'utiliser l'indicateur 'MEM_TOP_DOWN' quand on appelle' VirtualAlloc' quand la définition est activée. C'est la façon officielle d'attribuer la mémoire de haut en bas. –

Répondre

2

Le moyen le plus efficace de tester cela est de forcer le système à allouer la mémoire de haut en bas. Comment cela se fait est décrit ici: https://msdn.microsoft.com/en-us/library/bb613473.aspx

Pour forcer les allocations à allouer des adresses plus élevées avant adresses inférieures à des fins de test, spécifiez MEM_TOP_DOWN lors de l'appel VirtualAlloc ou définir la valeur de Registre suivante à 0x100000:

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ session Manager \ Memory Management \ AllocationPreference

Une fois que vous modifiez le paramètre de registre vous devrez redémarrer votre machine. Ne soyez pas surpris si votre machine devient instable lorsque vous faites cela. Un grand nombre de produits anti-programmes malveillants ne peuvent pas fonctionner dans le cadre d'une allocation de mémoire descendante à l'échelle du système. Il se peut que vous deviez désactiver temporairement votre anti-programme malveillant lors des tests d'allocation descendante.