Closed
Bug 1251047
Opened 10 years ago
Closed 10 years ago
/rest/bug/field takes 15-25 seconds to return
Categories
(bugzilla.mozilla.org :: General, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: dylan, Assigned: dylan)
References
Details
(Keywords: perf)
Attachments
(1 file)
|
506 bytes,
patch
|
dkl
:
review+
|
Details | Diff | Splinter Review |
Comment from bzdeck: https://github.com/bzdeck/bzdeck/issues/312#issuecomment-188454029
> I think we can drop BzAPI now. /field/bug offers the fields, classifications, >
> products, components as well as keywords. It takes 15+ seconds to load
> https://bugzilla.mozilla.org/rest/field/bug but it's okay because it also takes
> long to retrieve bugs at firstrun.
time http https://bugzilla.mozilla.org/rest/field/bug > /dev/null
http https://bugzilla.mozilla.org/rest/field/bug > /dev/null 0.13s user 0.07s system 0% cpu 23.313 total
| Assignee | ||
Comment 1•10 years ago
|
||
Hey, I think we can do something right away about this.
Here's what profiling shows right now:
https://hardison.net/~dylan/bug-1251047/nytprof-fields/
Bugzilla::Object->name is called 820,515 times. Wow!
The body of that method is pretty simple. Maybe nothing we can do about it. But what about Bugzilla::User::can_see_product?
> return scalar(grep {$_->name eq $product_name} @{$self->get_selectable_products});
Ah, grep in scalar context... that's really not ideal. We should use any { } there.
What that code does is call $_->name and compare it on every selectable product. if we change it to any { }, we'll only call it until one of the products match. Still not ideal, but maybe it improves things?
https://hardison.net/~dylan/bug-1251047/nytprof-fields2/
Now there's only 421,453 calls to Bugzilla::Object->name!
Assignee: nobody → dylan
Attachment #8723369 -
Flags: review?(dkl)
| Assignee | ||
Comment 2•10 years ago
|
||
So with this + bug 1251221 + bug 1251208, the differences against my bmo vm:
Before:
dylan@mac-thor ~(master)1? time http http://bmo.local/rest/field/bug >/dev/null
http http://bmo.local/rest/field/bug > /dev/null 0.09s user 0.04s system 0% cpu 13.699 total
After:
dylan@mac-thor ~(master)% time http http://bmo.local/rest/field/bug >/dev/null
http http://bmo.local/rest/field/bug > /dev/null 0.09s user 0.04s system 1% cpu 7.511 total
| Assignee | ||
Comment 3•10 years ago
|
||
(In reply to Dylan William Hardison [:dylan] from comment #0)
> time http https://bugzilla.mozilla.org/rest/field/bug > /dev/null
> http https://bugzilla.mozilla.org/rest/field/bug > /dev/null 0.13s user
> 0.07s system 0% cpu 23.313 total
After caching more objects:
time http https://bugzilla.mozilla.org/rest/field/bug > /dev/null
http https://bugzilla.mozilla.org/rest/field/bug > /dev/null 0.13s user 0.04s system 5% cpu 3.235 total
After this patch and the request cache one, I predict further improvement. :-)
Comment 4•10 years ago
|
||
Comment on attachment 8723369 [details] [diff] [review]
1251047_1.patch
Review of attachment 8723369 [details] [diff] [review]:
-----------------------------------------------------------------
r=dkl
Attachment #8723369 -
Flags: review?(dkl) → review+
| Assignee | ||
Comment 5•10 years ago
|
||
To ssh://gitolite3@git.mozilla.org/webtools/bmo/bugzilla.git
e9b54b1..5129486 master -> master
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
| Assignee | ||
Comment 6•10 years ago
|
||
broken some tests because of using bsearch rather than any {}. Fixed by commit below.
To ssh://gitolite3@git.mozilla.org/webtools/bmo/bugzilla.git
5129486..f6782b1 master -> master
| Assignee | ||
Comment 7•10 years ago
|
||
And more bustage caused by the fact that I'm an idiot.
To ssh://gitolite3@git.mozilla.org/webtools/bmo/bugzilla.git
f6782b1..0e0fd13 master -> master
You need to log in
before you can comment on or make changes to this bug.
Description
•