Hello SO!
I am trying to improve performance of elfinder , an ajax based file manager(elRTE.ru) .
It uses os.listdir in a recurisve to walk through all directories recursively and having a performance hit (like listing a dir with 3000 + files takes 7 seconds ) ..
I am trying to improve performance for it here is it's walking function:
for d in os.listdir(path):
pd = os.path.join(path, d)
if os.path.isdir(pd) and not os.path.islink(pd) and self.__isAccepted(d):
tree['dirs'].append(self.__tree(pd))
My questions are :
- If i change os.walk instead of os.listdir , would it improve performance?
- how about using dircache.listdir() ? cache WHOLE directory/subdir contents at the initial request and return cache results , if theres no new files uploaded or no changes in file?
- Is there any other method of Directory walking which is faster?
- Any Other Server Side file browser which is fast written in python (but i prefer to make this one fast)?