Hi,
I tried to set up a dlna server with an earlier version of vdr-nfofs a few months ago. It kinda worked but there were some performance problems in regard to file system operations. I hacked a file descriptor cache into the python code which helped a bit. Tobi might have included this in the new version.
Looks like my patches haven't been accepted for 0.7. You can try my patchset but I haven't worked on that for some months now. Patch is not minimal and not cleanly separated, so you should pick the tidbits you like.
Cya, Ed
On 03.10.2011 19:26, Tobi wrote:
Looks like my patches haven't been accepted for 0.7.
No they haven't. Sorry! But it's on the todo list. Just need to fix the merge conflicts first, because the patch doesn't apply to 0.7.
I have a new version 0.8 out with the following changes:
- Use cStringIO instead of string concatenation - about 3 times faster (Patch provided by Ed Hein) - Fixed license header in source files - it's the BSD licence now! - Set mtime of file nodes to recording time (parsed from *.rec) - Set mtime of dir nodes to original directories mtime - Added homepage http://projects.vdr-developer.org/projects/vdrnfofs - Some micro optimizations - Cache the file system nodes for get_stat() (nodes used for reading are not cached) - For FUSE file nodes' uid/gid is taken from the *.rec dir, for dir nodes from the original dir
The file system should now be *much* faster.
http://projects.vdr-developer.org/projects/vdrnfofs http://projects.vdr-developer.org/git/vdrnfofs.git/
@Ed Hein:
I've taken the cStringIO from your patch, which works pretty well, but did a different approach with the caching. Only the nodes used for tree walking/stat() are cached (max. 10 seconds). I've also set multithreaded=False instead of locking the file reads - threading (especially with locks around the reads) doesn't seem to make things faster anyways.
Tobias