-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Slowdown from 1.0.2 to 1.1 #99
Comments
There were some changes but not sure what could affect performance. Maybe
the multidimensional bugfixes.
Could you link me your test? I can try to profile it.
…On Sun, 9 Jun 2019, 11:10 Jacob Williams, ***@***.***> wrote:
It seems like v1.1 is ~10% slower parsing a large namelist file than
v1.0.2. My test case is the file here
<https://github.com/jacobwilliams/fast-namelist/tree/master/files>. I
haven't done extensive testing with other files though.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#99?email_source=notifications&email_token=AADQ325HOPO4V2RPEGQC3TTPZUMNDA5CNFSM4HWJT5VKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GYOCMSA>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AADQ3262TRCWMZQQSAQLRITPZUMNDANCNFSM4HWJT5VA>
.
|
Sorry just noticed the file link, I'll have a look.
…On Sun, 9 Jun 2019, 11:45 Marshall Ward, ***@***.***> wrote:
There were some changes but not sure what could affect performance. Maybe
the multidimensional bugfixes.
Could you link me your test? I can try to profile it.
On Sun, 9 Jun 2019, 11:10 Jacob Williams, ***@***.***>
wrote:
> It seems like v1.1 is ~10% slower parsing a large namelist file than
> v1.0.2. My test case is the file here
> <https://github.com/jacobwilliams/fast-namelist/tree/master/files>. I
> haven't done extensive testing with other files though.
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <#99?email_source=notifications&email_token=AADQ325HOPO4V2RPEGQC3TTPZUMNDA5CNFSM4HWJT5VKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GYOCMSA>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AADQ3262TRCWMZQQSAQLRITPZUMNDANCNFSM4HWJT5VA>
> .
>
|
It's the |
These seem to be the bottlenecks:
The first two were more or less understood bottlenecks (too much small IO and single-byte or single-token parsing) and needs an overall rethink. But the third one looks new. There have been some changes in
The So I am not sure that is exactly due to |
I can't recall the specifics of this yet, but I believe it was mostly to convert internal It's possible these problems don't exist anymore; this is overall a much safer operation nowadays. It's also possible that this should be interpreted as a null operation if the input is already a Again, will keep looking... |
Confirmed that this block of code is making your case about 6x slower:
This is ensuring that a potential lists of Completely removing the block only breaks one of my 80+ tests, so there's probably a lot of room for improvement here. |
This change appears to work, and
It also passes my tests. This removes the redundant passing of a In any case, I will probably merge this change very soon and will just deal with any potential fallout. |
I've pushed this change (907aa4c) |
Hoping this has been resolved, I will close this for now but feel free to re-open if it's not sufficient. As mentioned in this issue, there are some other obvious performance bottlenecks, but probably best to deal with them separately. |
It seems like v1.1 is ~10% slower parsing a large namelist file than v1.0.2. My test case is the file here. I haven't done extensive testing with other files though.
The text was updated successfully, but these errors were encountered: