diff options
author | Raphaƫl Marinier <raphael.marinier@gmail.com> | 2024-01-15 23:45:01 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-15 23:45:01 (GMT) |
commit | 5094690efd7f663f2e0c1a2a633d3344a0557095 (patch) | |
tree | fb0e3437f68110ddc5d36c4480c77a528e86788d | |
parent | 4f24b92aa0677ed5310dd2d1572b55f4e30c88ef (diff) | |
download | cpython-5094690efd7f663f2e0c1a2a633d3344a0557095.zip cpython-5094690efd7f663f2e0c1a2a633d3344a0557095.tar.gz cpython-5094690efd7f663f2e0c1a2a633d3344a0557095.tar.bz2 |
gh-91539: Small performance improvement of urrlib.request.getproxies_environment() (#108771)
Small performance improvement of getproxies_environment() when there are many environment variables. In a benchmark with 5k environment variables not related to proxies, and 5 specifying proxies, we get a 10% walltime improvement.
-rw-r--r-- | Lib/urllib/request.py | 2 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2023-09-01-15-33-18.gh-issue-91539.xoNLEI.rst | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 1d03259..bca5944 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -2490,7 +2490,7 @@ def getproxies_environment(): # select only environment variables which end in (after making lowercase) _proxy proxies = {} environment = [] - for name in os.environ.keys(): + for name in os.environ: # fast screen underscore position before more expensive case-folding if len(name) > 5 and name[-6] == "_" and name[-5:].lower() == "proxy": value = os.environ[name] diff --git a/Misc/NEWS.d/next/Library/2023-09-01-15-33-18.gh-issue-91539.xoNLEI.rst b/Misc/NEWS.d/next/Library/2023-09-01-15-33-18.gh-issue-91539.xoNLEI.rst new file mode 100644 index 0000000..a1af479 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-09-01-15-33-18.gh-issue-91539.xoNLEI.rst @@ -0,0 +1 @@ +Small (10 - 20%) and trivial performance improvement of :func:`urrlib.request.getproxies_environment`, typically useful when there are many environment variables to go over. |