[Python-Dev] PEP 471 -- os.scandir() function -- a better and faster directory iterator (original) (raw)

Nick Coghlan ncoghlan at gmail.com
Fri Jun 27 23:58:50 CEST 2014


On 28 Jun 2014 01:27, "Jonas Wielicki" <j.wielicki at sotecware.net> wrote:

On 27.06.2014 00:59, Ben Hoyt wrote: > Specifics of proposal > ===================== > [snip] Each DirEntry object has the following > attributes and methods: > [snip] > Notes on caching > ---------------- > > The DirEntry objects are relatively dumb -- the name attribute > is obviously always cached, and the isX and lstat methods > cache their values (immediately on Windows via FindNextFile, and > on first use on Linux / OS X via a stat call) and never refetch > from the system. I find this behaviour a bit misleading: using methods and have them return cached results. How much (implementation and/or performance and/or memory) overhead would incur by using property-like access here? I think this would underline the static nature of the data. This would break the semantics with respect to pathlib, but they’re only marginally equal anyways -- and as far as I understand it, pathlib won’t cache, so I think this has a fair point here.

Indeed - using properties rather than methods may help emphasise the deliberate difference from pathlib in this case (i.e. value when the result was retrieved from the OS, rather than the value right now). The main benefit is that switching from using the DirEntry object to a pathlib Path will require touching all the places where the performance characteristics switch from "memory access" to "system call". This benefit is also the main downside, so I'd actually be OK with either decision on this one.

Other comments:

Regards, Nick.

regards, jwi


Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20140628/9ced4e32/attachment.html>



More information about the Python-Dev mailing list