ParserBase could be optimized
@ezio-melotti is already working on this.
Since May 1, 2022.
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 36k
- PR merge metrics
- PR metrics pending
Description
There is a lot of wasteful CPU code in this fashion (seen multiple times) :-
if ")" in rawdata[j:]:
j = rawdata.find(")", j) + 1
search performed in string twice, even if we could just do it once.
Consider the strings immutable, then on every slice a new string is created on the fly.
Moreover, the slicing done at rawdata[j:], is bound to be quite expensive depending on the size of the string.
We could eliminate slicing altogether and only have one find operation in this style :-
RPAREN_pos = rawdata.find(")", j)
if find_RPAREN != -1:
j = RPAREN_pos + 1
I'm new to Open Source Code Contributions. Would love to learn from other's coding style & know other's point of view.
Originally posted by @be-thomas in https://github.com/python/cpython/issues/92084#issuecomment-1114023102
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.