Il est très difficile, en général, un processus de « donner la mémoire de retour à l'OS » (jusqu'à ce que le processus se termine et le système d'exploitation récupère tous la mémoire, bien sûr) parce que (dans la plupart la mise en œuvre) ce malloc
retours est découpé en gros blocs pour plus d'efficacité, mais le bloc entier ne peut pas être rendu si une partie de celui-ci est toujours utilisée - ainsi, la plupart des bibliothèques standard C n'essaient même pas.
Pour une discussion décente dans un contexte Python, voir par ex. here. Evan Jones a corrigé quelques problèmes spécifiques à Python comme décrit here et here, mais son correctif est dans le tronc depuis Python 2.5, donc les problèmes que vous observez sont définitivement avec le paquet système malloc, pas avec Python en soi. Une explication spécifique à 2.6 est here et here.
Un fil SO est here, où Hugh Allen dans sa réponse cite les programmeurs de Firefox à l'extension que Mac OS X est un système où il est fondamentalement impossible un processus pour donner la mémoire de retour à l'OS. Donc, seulement en terminant un processus, vous pouvez être sûr de libérer sa mémoire. Par exemple, un serveur de longue durée, de temps en temps, pourrait claquer son état sur le disque et s'éteindre (avec un petit processus de surveillance, un système ou une coutume, en le surveillant et en le redémarrant). Si vous savez que l'opération suivante nécessitera beaucoup de mémoire pendant une courte période, vous pouvez souvent exécuter le travail gourmand en mémoire dans le processus enfant et renvoyer les résultats (le cas échéant) au processus parent via un canal. le processus enfant se termine. Et ainsi de suite.
Pourquoi voudriez-vous qu'il baisse? Quel système d'exploitation utilisez-vous? Dans de nombreux systèmes d'exploitation, une fois qu'un processus a acquis de la mémoire, le processus reste très important. –
J'utilise Mac OS X 10.5, je crois que plus tard, il mangerait plus d'espace. actuellement, il avait augmenté d'environ 15 Mo plus de 24 Mo au stade initial. Je crois que la mémoire de processus devrait croître en termes de MB, ce qui pourrait affecter la taille de la mémoire disponible. – herby