J'ai écrit un démon en php et je veux m'assurer qu'il ne fuit pas la mémoire, car il fonctionnera 24/7.démon php fuite de mémoire possible
même dans sa forme la plus simple, memory_get_peak_usage pour un démon rapportera que le script consomme plus de mémoire pour chaque cycle. memory_get_usage d'autre part ne va pas grandir. La question est: est-ce que je devrais m'inquiéter? J'ai démonté le démon pour les bases nues, mais cela se passe toujours. Des pensées?
#!/usr/bin/php -q
<?php
require_once "System/Daemon.php";
System_Daemon::setOption("appName", "smsd");
System_Daemon::start();
while(!System_Daemon::isDying()){
System_Daemon::info("debug: memory_get_peak_usage: ".memory_get_peak_usage());
System_Daemon::info("debug: memory_get_usage: ".memory_get_usage());
System_Daemon::iterate(2);
}
NOTE FINALE + CONCLUSION: i fini par écrire mon propre enveloppe de démon, ne pas utiliser la system_daemon de poire. indépendamment de la façon dont j'ai tweaked cette bibliothèque je ne pouvais pas l'empêcher de fuir la mémoire. J'espère que ceci aide quelqu'un d'autre.
NOTE FINALE + CONCLUSION 2: mon script est en production depuis plus d'une semaine et ne perd pas 1 octet de mémoire. Donc - écrire un démon en php semble être correct, tant que vous êtes très prudent sur sa consommation de mémoire.
Le partage de votre wrapper démon serait génial;) – Xeoncross
@Xeoncross désolé pour la réponse tardive. mais ouais bien. Il s'agit simplement d'une boucle infinie qui utilise un certain temps avant d'itérer. rien de plus. Assurez-vous simplement d'enregistrer memory_get_peak_usage() pour chaque itération. De cette façon, vous verrez si vous avez des fuites de mémoire. – fjallstrom