Lorsque vous utilisez un script long qui écrit dans un fichier texte ouvert, par exemple pour la journalisation, quelle est la meilleure approche: ouvrir un fichier, y écrire si nécessaire, puis fermer lorsque vous avez terminé? Ou ouvrez le fichier, écrivez-le et fermez-le immédiatement à chaque fois? Je peux voir les avantages et les inconvénients des deux. Des pensées ou des expériences?Scripts longs et documents ouverts
Répondre
Généralement, ouvrir et fermer est ce que je fais, sauf s'il y a beaucoup d'accès aux fichiers. Gardez à l'esprit que pour les scripts TRÈS actifs et à exécution longue, vous devrez peut-être gérer l'épuisement des descripteurs de fichiers dans votre système d'exploitation.
Je suis d'avis que vous détenez seulement des ressources aussi longtemps que vous avez besoin s'il y a une possibilité de discorde pour la ressource. Pour un processus de longue durée, je vous suggère d'ouvrir/rechercher/écrire/fermer uniquement lorsque vous avez besoin d'écrire dans le fichier. Cela laisse le fichier disponible pour d'autres processus à utiliser. En particulier avec les fichiers journaux, j'aimerais pouvoir les lire ou les faire tourner périodiquement. Si le processus maintient le fichier ouvert, il devient difficile de le faire. Je pense que cela vaut probablement la peine d'écrire du code supplémentaire pour permettre à plusieurs processus d'utiliser la ressource.
Si vous avez un seul fichier journal dans lequel vous écrivez, la plupart du temps vous le laissez ouvert pendant la durée du script/programme. Si vous écrivez dans de nombreux fichiers différents, vous devrez en fermer certains parce qu'il y a généralement des limites au nombre de handles de fichiers ouverts que vous pouvez avoir en une fois. Je ne peux pas imaginer que vous atteindriez cette limite, sauf dans des cas extrêmes.
- 1. Gestion des documents xml (xlsx) ouverts au bureau avec PHP
- 2. Épingler l'arrière-plan de l'image au bas du document dans des documents courts et longs
- 3. Création dynamique de documents Office Open XML: mise à jour de tous les champs ouverts
- 4. Scripts aux documents (fonctionnalité de publication de Matlab en python)
- 5. projets en ligne gratuits et ouverts?
- 6. Scripts et outils dTrace
- 7. Scripts Nhibernate et sql
- 8. Modulo avec longs entiers longs dans Objective C
- 9. GCC prend-il en charge les longs longs int?
- 10. Y at-il un raccourci clavier pour afficher tous les documents ouverts dans Visual Studio 2008
- 11. Documents XML et & char?
- 12. ListBox éléments longs conseils
- 13. Comment obtenir une liste des documents récemment ouverts pour une application?
- 14. Liste des proxies ouverts
- 15. Trop de fichiers ouverts
- 16. Des sites Web ouverts?
- 17. heightForRowAtIndexPath pour NSStrings plus longs
- 18. tri et le filtrage Documents
- 19. Office iFilter et documents incorporés
- 20. HSQLDB Internals: Hibernate et Integer vs ID longs
- 21. Sélectionnez un élément: Noms courts et longs sans javascript?
- 22. NumPy et memmap: [Errno 24] Trop de fichiers ouverts
- 23. Migration vers des systèmes ouverts
- 24. Formulaires complexes et scripts dans Access
- 25. Scripts (iframes et javascript) ajoutés au site
- 26. Scripts Embedded IronPython et types de conversion
- 27. Documents WPF DocumentViewer Find-function et FixedPage
- 28. Crystal Reports et documents PDF téléchargés
- 29. Railo, Tomcat IIS7 et documents par défaut
- 30. Comment afficher les nombres longs dans Excel?