homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: on Android _bootlocale on startup relies on too many library modules
Type: performance Stage: resolved
Components: Interpreter Core Versions: Python 3.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: xdegaye Nosy List: Arfrever, barry, benjamin.peterson, brett.cannon, christian.heimes, eric.araujo, eric.snow, ezio.melotti, flox, lemburg, mark.dickinson, ncoghlan, orsenthil, python-dev, rhettinger, vstinner, xdegaye, yan12125
Priority: normal Keywords: patch

Created on 2016年11月03日 09:48 by xdegaye, last changed 2022年04月11日 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
android-locale-utf8.patch yan12125, 2016年11月18日 15:51 review
android-locale-utf8.patch yan12125, 2016年11月18日 17:47 Patch version 2 review
android-locale-utf8.patch yan12125, 2016年12月04日 13:35 Patch version 3 review
android-locale-utf8.patch yan12125, 2016年12月05日 06:17 Patch version 4 review
android-locale-utf8.patch yan12125, 2016年12月07日 11:07 Patch version 5 review
Messages (11)
msg279981 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016年11月03日 09:48
Android does not have langinfo.h and this results in _bootlocale importing locale on startup (see issue 26928).
IMHO it is not acceptable to fallback to locale.py if CODESET is not available (in answer to Victor question in msg199367), because there are now two code paths to investigate weird bugs such as the one described by Antoine in issue 9548. Also note that Android platforms have a slow processor and limited RAM size, so they would strongly benefit from a startup sequence avoiding the imports made by the locale module. Since there is already a _bootlocale module, what are now the objections to implement the patch Antoine has proposed in issue 9548 ?
Nosying people from issue 9548.
msg281131 - (view) Author: (yan12125) * Date: 2016年11月18日 15:51
Here's my try: force UTF-8 on Android as explained in msg281110. sys.getfilesystemencoding() is already UTF-8 since issue22747.
Testing:
1. Starting up time 0.18~0.19s => 0.11~0.12s, on Android 6.0, ASUS ZE500KL (Qualcomm MSM8916 QuadCore 1.2GHz)
2. test_site passes
msg281153 - (view) Author: (yan12125) * Date: 2016年11月18日 17:47
Version 2 - use sys.implementation._multiarch to determine whether it's Android or not
msg281170 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2016年11月18日 21:27
I created the issue #28740: Add sys.getandroidapilevel().
msg282339 - (view) Author: (yan12125) * Date: 2016年12月04日 13:35
Patch version 3, using sys.getandroidapilevel()
msg282386 - (view) Author: (yan12125) * Date: 2016年12月05日 06:17
Thanks Victor. Here's new patch, which uses hasattr
msg282481 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2016年12月05日 22:54
android-locale-utf8.patch LGTM, but I added minor comments on the review.
I would prefer to let Xavier merges this one, since he can test it.
msg282505 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016年12月06日 07:41
This is a performance issue. I will look at it shortly.
msg282616 - (view) Author: (yan12125) * Date: 2016年12月07日 11:07
Patch version 5, updated comments. Thanks for all of those feedbacks :)
msg283472 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016年12月17日 08:20
New changeset 1756beed417c by Xavier de Gaye in branch 'default':
Issue #28596: The preferred encoding is UTF-8 on Android.
https://hg.python.org/cpython/rev/1756beed417c 
msg283475 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016年12月17日 08:38
Closing the issue. Thanks for the patch Chi Hsuan Yen.
History
Date User Action Args
2022年04月11日 14:58:39adminsetgithub: 72782
2017年03月31日 23:33:26adminsetpull_requests: - pull_request1113
2017年03月31日 23:33:06ezio.melottisetpull_requests: + pull_request1113
2017年03月31日 23:23:42ezio.melottisetpull_requests: - pull_request1113
2017年03月31日 23:12:21ezio.melottisetnosy: + ezio.melotti
2017年03月31日 16:36:39dstufftsetpull_requests: + pull_request1113
2016年12月17日 08:39:00xdegayesetstatus: open -> closed
resolution: fixed
messages: + msg283475

stage: patch review -> resolved
2016年12月17日 08:20:06python-devsetmessages: + msg283472
2016年12月07日 11:07:39yan12125setfiles: + android-locale-utf8.patch

messages: + msg282616
2016年12月06日 07:41:22xdegayesetmessages: + msg282505
2016年12月05日 22:54:32vstinnersetmessages: + msg282481
2016年12月05日 06:17:47yan12125setfiles: + android-locale-utf8.patch

messages: + msg282386
2016年12月04日 13:35:00yan12125setfiles: + android-locale-utf8.patch

messages: + msg282339
2016年12月03日 16:42:30xdegayesetassignee: xdegaye
stage: needs patch -> patch review
type: behavior -> performance
versions: - Python 3.6
2016年11月18日 21:27:03vstinnersetmessages: + msg281170
2016年11月18日 17:59:49pitrousetnosy: - pitrou
2016年11月18日 17:47:32yan12125setfiles: + android-locale-utf8.patch

messages: + msg281153
2016年11月18日 15:51:44yan12125setfiles: + android-locale-utf8.patch

nosy: + yan12125
messages: + msg281131

keywords: + patch
2016年11月03日 09:59:10xdegayelinkissue26865 dependencies
2016年11月03日 09:48:40xdegayecreate

AltStyle によって変換されたページ (->オリジナル) /