Maison >développement back-end >Tutoriel Python >Comment partager de grands tableaux en lecture seule et des objets Python en multitraitement sans surcharge de mémoire ?
Question :
En multitraitement, comment pouvez-vous partager un grand fichier en lecture uniquement un tableau ou tout objet Python arbitraire sur plusieurs processus sans entraîner de surcharge de mémoire ?
Réponse :
Dans les systèmes d'exploitation qui utilisent la sémantique fork() de copie sur écriture, les structures de données inchangées restent disponibles pour tous les processus enfants sans consommation de mémoire supplémentaire. Assurez-vous simplement que l'objet partagé reste inchangé.
Pour les tableaux :
Approche efficace :
Objets partagés inscriptibles :
le multitraitement fournit deux méthodes :
Objets Python arbitraires :
Problèmes d'optimisation :
La surcharge observé dans l’extrait de code fourni n’est pas dû à une copie de la mémoire. Au lieu de cela, cela provient de la sérialisation/désérialisation des arguments de la fonction (le tableau arr), qui entraîne une pénalité de performances lors de l'utilisation du proxy Manager.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!