Bonjour,
Mon système de logging conserve ses fichiers ouverts pour ne pas avoir à les réouvrir à chaque write(). J'obtiens de temps en temps l'IOError: [Errno 24] Too many open files, le plus souvent lorsque le profiler appelle dump_stats()
- Comment puis-je changer sous windows le nombre limite de fichiers ouverts par processus ?
- Le patch suivant vise à dénombrer les fichiers encore ouverts à un moment donné. Il m'indique 59 fichiers ouverts au moment ou je catche l'IOerreur. Est-ce vraiment la limite de mon Windows ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 import __builtin__ class DO_PATCH(): memory= {} BUITINOPEN= open def __init__(self): """ Activates patch of __builtin__.open """ def _open(file,*a): o= DO_PATCH.BUITINOPEN(file,*a) DO_PATCH.memory[file]= o return o __builtin__.open= _open @staticmethod def show_use(opened=None): """ Show current state of all file that had been opened since patch """ d= dict([(k,v.closed) for (k,v) in DO_PATCH.memory.items()]) def _print(*a): print a print d if opened== None or opened==False: f= [k for (k,closed) in d.items() if closed] print "CLOSED ", len(f), f [_print(k) for k in sorted(f)] if opened== None or opened==True: f= [k for (k,closed) in d.items() if not closed] print "OPENED", len(f), f [_print(k) for k in sorted(f)] return d
Partager