Optimisation mémoire pour appli 32 bit sur Win 7 64 : help ! - Mémoire - Hardware
Marsh Posté le 05-10-2017 à 23:35:28
Hello.
Euh, j'aurais plutôt tendance à penser que windows "alloue" réellement 4 Go à ton appli 32 bits (ça doit tourner dans un environnement virtuel) et que tout ce qui est mapping mémoire/périphériques n'est absolument pas en rapport (c'est géré par l'OS 64 bits qui a largement de quoi adresser tout ça).
Bref, considère ton appli 32 bits comme une sorte de VMWare à qui on peut faire croire n'importe quoi mais qui ne pourra jamais adresser plus de 4 Go.
Là tu raisonnes comme si tu étais sur un OS 32 bits, là, ces limitations s'appliqueraient, mais sur un OS 64 bits non.
Marsh Posté le 06-10-2017 à 00:43:23
Bizarre, car quand je monitore la taille mémoire utilisée pour mon appli, ça freeze toujours aux environs de 2.3 Go. Cette appli fonctionne sans aucun souci, sauf si on a le malheur de créer un projet qui dépasse 2.3 Go à l'intérieur.
Marsh Posté le 06-10-2017 à 07:15:27
Une application 32 bit ne peut pas adresser plus de 2Go par défaut. Le seul moyen de pouvoir utiliser plus de mémoire, c'est soit de la compiler en 64 bit ou bien en 32 bit mais avec l'option IMAGE_FILE_LARGE_ADDRESS_AWARE lors de la phase de "link":
https://msdn.microsoft.com/en-us/library/aa366778.aspx
Donc si tu n'as pas le code source de ton application cela est normalement impossible d'allouer plus de mémoire à ton application.
Tu es sûr qu'une version 64bit n'existe pas ?
Marsh Posté le 06-10-2017 à 07:38:46
La version 64 bit existe bien sûr, mais je n'ai absolument pas le budget pour me la payer...
A mon avis, cette appli doit être de type LARGE ADDRESS AWARE, mais est-ce que d'emblée win 7 64 bit emploie ce mode ?
Car il me semble que sur les anciennes versions de windows il fallait modifier le boot.ini pour permettre d'avoir 3 Go adressable aux programmes.
Est-ce le cas sur WIN 7 64 ou bien si non, où dois-je modifier ce paramètre car je n'ai pas de boot.ini , sans doute à cause de l'ACPI.
Il n'y avait pas une ligne dans le registre pour modifier ce paramètre ?
Marsh Posté le 06-10-2017 à 10:37:35
Les versions Windows 32 bit ont besoin effectivement de configurer le mode PAE/4GT dans le boot ini mais pas les versions 64bit.
Pose la question au support technique du logiciel en question pour savoir s'ils utilisent ou non le "LARGE ADDRESS AWARE" mais basé sur ton retour cela ne semble pas le cas...
Ce paramètre ne dépend pas de l'OS mais de l'application.
Marsh Posté le 06-10-2017 à 10:42:12
freew a écrit : Bonjour, |
pour moi non : ton application ne "marche pas très bien".
elle devrait faire appel au swap.
A moins que tu aies supprimé le swap... d'ou tes plantages.
Marsh Posté le 06-10-2017 à 11:05:40
leroimerlinbis a écrit : pour moi non : ton application ne "marche pas très bien". |
Pour moi cela n'a rien avoir avec le swap (vue OS), car d'un point de vue logiciel, la RAM ou la SWAP c'est le même chose. C'est juste que d'un point de vue User-mode, une application 32 bit ne peut pas adresser plus de 2Go de mémoire (quelle soit RAM ou swap) à moins de la "linker" avec "LARGE ADDRESS AWARE" (limitée 3Go sur OS 32bit et 4Go sur OS 64 bit)
Marsh Posté le 06-10-2017 à 16:01:26
Mais alors comment la linker avec LARGE ADDRESS AWARE ? y'a-t-il une option d'exécution ?
Marsh Posté le 06-10-2017 à 16:51:47
Non il te faut le source code.
Quand tu crées un exécutable, il y a d'abord la phase de compilation, puis une fois que tous les modules sont compilés (binaires) il faut les "lier/mapper". C'est lors de cette dernière phase qu'il faut fournir les bons paramètres au linker... mais pour ça il faut le code source.
Après demande au support du logiciel, ils te diront s'il a été compilé avec cette option et quelle est la limite max pour un projet...
Marsh Posté le 06-10-2017 à 19:02:24
Je sais que je ne suis pas le seul à rencontrer ces problèmes avec cette version du logiciel, mais de toute façon la firme qui l'édite va simplement me suggérer de passer à la version 64 bits...On coince de ce point de vue. Ceci dit, je sais que j'avais réussi parfois à charger un projet qui était normalement un peu trop gros, en ayant un ordinateur fraichement redémarré, et en fermant le plus de choses possibles pour libérer la mémoire (skype, applis windows inutiles, dll inutiles...) C'est pourquoi je demandais également ce qui pouvait être fait pour décharger au possible la zone de mémoire disponible pour les applis 32 bits. Je pensais notamment au cache de la carte vidéo. En tout cas dans mon north bridge l'option video memory swap (ou qqch comme ça) est activé.
Marsh Posté le 06-10-2017 à 19:26:07
C'est géré par le programme et tu n'y peux rien, c'est à ça que servent les applications en 64 bits donc voilà...
Marsh Posté le 05-10-2017 à 23:18:15
Bonjour,
je dispose d'un PC installé en windows 7 64 bit ( et 16 Go de RAM).
Malheureusement, j'ai un souci de mémoire disponible pour une application 32 bit.
Je ne parviens pas à ouvrir un projet sur mon ordinateur pour cette raison. Ca coince car pas assez de mémoire 32 bit dispo, l'application bloque...
L'appli marche très bien sinon. Il n'y a que les projets très volumineux qui peuvent coincer.
Théoriquement j'ai lu que la mémoire adressable sur win 7 64 est de 4 go pour une appli 32 bit.
Sauf qu'il y a la carte vidéo (ASUS EAH5450) qui "usurpe" 512 Mo (cache vidéo) sur le système (15,5 Go de dispo sur 16) et qui doit très certainement (je suppose) se servir sur ces 4 go au lieu d'aller picorer sur les 12 restants... Si tel est le cas (je n'en suis pas sûr), est-il possible de remapper la mémoire cache vidéo sur une partie hors zone 32 bit ?
Si l'on ajoute à cela les autres applications incluses dans le démarrage, dont windows lui-même, des 4 Go il n'en reste à priori qu'un peu plus de la moitié.
Comment faire pour optimiser mon PC de manière à ce que cette partie dédiée au 32 bit soit la plus large possible sur mon WIN 7 64 bit ?
Il me faudrait 3 ou 4 Giga de RAM 32 Bit complets car l'application en question est très gourmande - et je n'ai absolument pas les moyens de me payer la version 64 bits !
Comment optimiser cette mémoire au maximum ?
Merci de votre aide.
Message édité par freew le 05-10-2017 à 23:20:38