summaryrefslogtreecommitdiff
path: root/Doc
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2011-11-29 22:45:07 +0100
committerAntoine Pitrou <solipsis@pitrou.net>2011-11-29 22:45:07 +0100
commit0599b5b2a10625e75554ca2b0ecc1ff07b855763 (patch)
tree1f67310e3c84ffbf01b2b815adbc6e0107c18686 /Doc
parentc8e032006a608f14f9463f06f4d466fd367b37f3 (diff)
downloadcpython-git-0599b5b2a10625e75554ca2b0ecc1ff07b855763.tar.gz
Add subheaders to make PEP 393 description clearer
Diffstat (limited to 'Doc')
-rw-r--r--Doc/whatsnew/3.3.rst50
1 files changed, 28 insertions, 22 deletions
diff --git a/Doc/whatsnew/3.3.rst b/Doc/whatsnew/3.3.rst
index eb41cca96d..5c69ea7379 100644
--- a/Doc/whatsnew/3.3.rst
+++ b/Doc/whatsnew/3.3.rst
@@ -69,6 +69,9 @@ API will not fully benefit of the memory reduction, or - worse - may use
a bit more memory, because Python may have to maintain two versions of each
string (in the legacy format and in the new efficient storage).
+Functionality
+-------------
+
Changes introduced by :pep:`393` are the following:
* Python now always supports the full range of Unicode codepoints, including
@@ -76,28 +79,6 @@ Changes introduced by :pep:`393` are the following:
narrow and wide builds no longer exists and Python now behaves like a wide
build, even under Windows.
-* The storage of Unicode strings now depends on the highest codepoint in the string:
-
- * pure ASCII and Latin1 strings (``U+0000-U+00FF``) use 1 byte per codepoint;
-
- * BMP strings (``U+0000-U+FFFF``) use 2 bytes per codepoint;
-
- * non-BMP strings (``U+10000-U+10FFFF``) use 4 bytes per codepoint.
-
- The net effect is that for most applications, memory usage of string storage
- should decrease significantly - especially compared to former wide unicode
- builds - as, in many cases, strings will be pure ASCII even in international
- contexts (because many strings store non-human language data, such as XML
- fragments, HTTP headers, JSON-encoded data, etc.). We also hope that it
- will, for the same reasons, increase CPU cache efficiency on non-trivial
- applications.
-
- .. The memory usage of Python 3.3 is two to three times smaller than Python 3.2,
- and a little bit better than Python 2.7, on a `Django benchmark
- <http://mail.python.org/pipermail/python-dev/2011-September/113714.html>`_.
- XXX The result should be moved in the PEP and a link to the PEP should
- be added here.
-
* With the death of narrow builds, the problems specific to narrow builds have
also been fixed, for example:
@@ -120,6 +101,31 @@ Changes introduced by :pep:`393` are the following:
* The :file:`./configure` flag ``--with-wide-unicode`` has been removed.
+Performance and resource usage
+------------------------------
+
+The storage of Unicode strings now depends on the highest codepoint in the string:
+
+* pure ASCII and Latin1 strings (``U+0000-U+00FF``) use 1 byte per codepoint;
+
+* BMP strings (``U+0000-U+FFFF``) use 2 bytes per codepoint;
+
+* non-BMP strings (``U+10000-U+10FFFF``) use 4 bytes per codepoint.
+
+The net effect is that for most applications, memory usage of string storage
+should decrease significantly - especially compared to former wide unicode
+builds - as, in many cases, strings will be pure ASCII even in international
+contexts (because many strings store non-human language data, such as XML
+fragments, HTTP headers, JSON-encoded data, etc.). We also hope that it
+will, for the same reasons, increase CPU cache efficiency on non-trivial
+applications.
+
+.. The memory usage of Python 3.3 is two to three times smaller than Python 3.2,
+ and a little bit better than Python 2.7, on a `Django benchmark
+ <http://mail.python.org/pipermail/python-dev/2011-September/113714.html>`_.
+ XXX The result should be moved in the PEP and a link to the PEP should
+ be added here.
+
PEP 3151: Reworking the OS and IO exception hierarchy
=====================================================