-
Notifications
You must be signed in to change notification settings - Fork 905
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
Improve performance #78
Comments
CI is also flaky: https://travis-ci.org/Keats/gutenberg/jobs/243683228 |
The flaky issue is with the categories integration test:
Edit: this is fixed |
So for the benches I envision a script generating various (gitignored) scenarios:
Both blog scenarios should have one bench each for syntax highlighting turned on/off cc @williamyaoh I'll write the script today or tomorrow if possible so we have a baseline to compare with |
Script added in cfcc4e7 and I think we have a case of https://accidentallyquadratic.tumblr.com/ :D It's super slow even for 250 articles. I'll dig into that tomorrow or later this week. The slowness is not from the loading which happens pretty fast (130ms for 300 pages) but the |
Made it linear in 414457e |
So for the loading, the last (obvious) hanging fruit afaik is that loop: https://github.com/Keats/gutenberg/blob/master/src/site.rs#L98 If i hack together a par_iter that does roughly the same, it's around 50% faster. The issue is that I have no clue how to modify |
Correct me if I'm wrong, but it seems like reading the file contents from
disk is the bottleneck that needs to be threaded, right? In that case,
couldn't you simply create the Page and Section objects in parallel,
but change add_page and add_section to accept an owned, already-loaded
object and still call those in series?
|
I should have updated it but that's how i changed it this morning. I'll
push the changes when I get home.
…On 22 Jun 2017 9:35 am, "William Yao" ***@***.***> wrote:
Correct me if I'm wrong, but it seems like reading the file contents from
disk is the bottleneck that needs to be threaded, right? In that case,
couldn't you simply create the `Page` and `Section` objects in parallel,
but change `add_page` and `add_section` to accept an owned, already-loaded
object and still call those in series?
On Jun 21, 2017 10:24, "Vincent Prouillet" ***@***.***>
wrote:
> So for the loading, the last (obvious) hanging fruit afaik is that loop:
> https://github.com/Keats/gutenberg/blob/master/src/site.rs#L98
>
> If i hack together a par_iter that does roughly the same, it's around 50%
> faster. The issue is that I have no clue how to modify self in the
> parallel iterator or if it's even doable. Too late to investifate more.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#78 (comment)>,
or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AFZ8s9G0tZHp0-
aUgvYgBtcly96pfWofks5sGTW9gaJpZM4NrizQ>
> .
>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#78 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AApho9xPqd-h56jtE8ZUONM2-Md0UZsyks5sGbbsgaJpZM4NrizQ>
.
|
Pushed b158ca7 name current.bench ns/iter now.bench ns/iter diff ns/iter diff % speedup
bench_loading_big_blog 164,714,894 129,928,686 -34,786,208 -21.12% x 1.27
bench_loading_big_blog_with_syntax_highlighting 644,116,974 541,249,158 -102,867,816 -15.97% x 1.19
bench_loading_medium_blog 41,935,664 31,289,882 -10,645,782 -25.39% x 1.34
bench_loading_medium_blog_with_syntax_highlighting 159,659,632 149,630,526 -10,029,106 -6.28% x 1.07
bench_loading_medium_kb 168,637,495 131,690,163 -36,947,332 -21.91% x 1.28
bench_loading_medium_kb_with_syntax_highlighting 638,500,862 575,134,100 -63,366,762 -9.92% x 1.11
bench_loading_small_blog 4,625,168 3,454,008 -1,171,160 -25.32% x 1.34
bench_loading_small_blog_with_syntax_highlighting 18,526,481 16,519,896 -2,006,585 -10.83% x 1.12
bench_loading_small_kb 15,476,227 11,794,476 -3,681,751 -23.79% x 1.31
bench_loading_small_kb_with_syntax_highlighting 62,483,195 55,922,676 -6,560,519 -10.50% x 1.12 |
Integration tests are very annoying to write/change and benching could use some scripts to generate some big (.gitignored) websites and then have benchmarks on it
I don't really have any idea for the testing part so any help is welcome
The text was updated successfully, but these errors were encountered: