Dans mon application web, je rends les pages en utilisant un script PHP, puis je génère des fichiers HTML statiques à partir de celles-ci. Les HTML statiques sont servis aux utilisateurs pour accélérer les performances. Les fichiers HTML deviennent éventuellement périmés et doivent être supprimés.Qui est plus rapide, 'find -exec' ou 'find | xargs -0 '?
Je discute entre deux façons d'écrire le script d'expulsion.
La première utilise une seule commande find, comme
find /var/www/cache -type f -mmin +10 -exec rm \{} \;
La deuxième forme est par la tuyauterie à travers xargs, quelque chose comme
find /var/www/cache -type f -mmin +10 -print0 | xargs -0 rm
La première forme invoque rm
pour chaque fichier qu'il trouve, tandis que la seconde forme envoie simplement tous les noms de fichier à un seul rm
(mais la liste des fichiers peut être très longue).
Quelle forme serait la plus rapide? Dans mon cas, le répertoire de cache est partagé entre quelques serveurs Web, donc tout est fait par NFS, si cela est important pour ce problème.
Je pense que xargs générera automatiquement (sans -l) plusieurs processus si le nombre d'arguments est supérieur au maximum du shell. – MatthieuP
Merci. Je ne savais pas que xargs pouvait le faire. – yhager