Message351351
The default value of subprocess.Popen "close_fds" parameter changed to True in Python 3. Compared to Python 2, close_fds=True can make Popen 10x slower: see bpo-37790.
A single close(fd) syscall is cheap. But when MAXFDS (maximum file descriptor number) is high, the loop calling close(fd) on each file descriptor can take several milliseconds.
On FreeBSD, the _posixsubprocess could use closefrom() to reduce the number of syscalls.
On Linux, _posixsubprocess lists the content of /proc/self/fd/ to only close open file descriptor, after fork() and before exec(). |
|
Date |
User |
Action |
Args |
2019-09-09 07:25:36 | vstinner | set | recipients:
+ vstinner |
2019-09-09 07:25:36 | vstinner | set | messageid: <1568013936.15.0.668992536534.issue38061@roundup.psfhosted.org> |
2019-09-09 07:25:36 | vstinner | link | issue38061 messages |
2019-09-09 07:25:35 | vstinner | create | |
|