Closed Bug 1223153 Opened 9 years ago Closed 9 years ago

21% MacOS sessionrestore on Mozilla-Inbound (v.45) on November 07, 2015 from push c99a26fcff8f7ecb57b379e2bbe909c3844c2b69

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla45
Tracking Status
firefox45 --- fixed

People

(Reporter: jmaher, Assigned: m_kato)

References

Details

(Keywords: perf, regression, Whiteboard: [talos_regression])

Attachments

(1 file)

Talos has detected a Firefox performance regression from your commit c99a26fcff8f7ecb57b379e2bbe909c3844c2b69 in bug 1003439.  We need you to address this regression.

This is a list of all known regressions and improvements related to your bug:
http://alertmanager.allizom.org:8080/alerts.html?rev=c99a26fcff8f7ecb57b379e2bbe909c3844c2b69&showAll=1

On the page above you can see Talos alert for each affected platform as well as a link to a graph showing the history of scores for this test. There is also a link to a treeherder page showing the Talos jobs in a pushlog format.

To learn more about the regressing test, please see: https://wiki.mozilla.org/Buildbot/Talos/Tests#sessionrestore.2Fsessionrestore_no_auto_restore

Reproducing and debugging the regression:
If you would like to re-run this Talos test on a potential fix, use try with the following syntax:
try: -b o -p macosx64 -u none -t other[10.10]  # add "mozharness: --spsProfile" to generate profile data

To run the test locally and do a more in-depth investigation, first set up a local Talos environment:
https://wiki.mozilla.org/Buildbot/Talos/Running#Running_locally_-_Source_Code

Then run the following command from the directory where you set up Talos:
talos --develop -e <path>/firefox -a sessionrestore_no_auto_restore

Making a decision:
As the patch author we need your feedback to help us handle this regression.
*** Please let us know your plans by Thursday, or the offending patch will be backed out! ***

Our wiki page outlines the common responses and expectations:
https://wiki.mozilla.org/Buildbot/Talos/RegressionBugsHandling
Mokoto,

Could you look at the mac speech service you wrote and see why startup time is hindered?
Flags: needinfo?(eitan) → needinfo?(m_kato)
Humm, Mac has a lot of voice items and API call will be slow.  I should enumerate it on non Gecko main thread.
Flags: needinfo?(m_kato)
Assignee: nobody → m_kato
Comment on attachment 8686064 [details] [diff] [review]
Create worker thread to enumerate voice items

When startup, OSX Speech Synthesizer service enumerates all voice items.  But this call is expensive (Objective-C API call and item is 64).

So I should create worker thread to enumerate items, then register it on gecko main thread
Attachment #8686064 - Flags: review?(eitan)
Comment on attachment 8686064 [details] [diff] [review]
Create worker thread to enumerate voice items

Review of attachment 8686064 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/media/webspeech/synth/cocoa/OSXSpeechSynthesizerService.mm
@@ +290,4 @@
>    }
>  
> +  RefPtr<RegisterVoicesRunnable> runnable = new RegisterVoicesRunnable(mSpeechService, list);
> +  NS_DispatchToMainThread(runnable, NS_DISPATCH_SYNC);

I bet you could use NS_NewRunnableMethodWithArgs if you didn't want to manually create another runnable class, but this works too.

@@ +326,5 @@
>      return false;
>    }
>  
> +  nsCOMPtr<nsIThread> thread;
> +  if (NS_FAILED(NS_NewNamedThread("SpeechWokrer", getter_AddRefs(thread)))) {

typo, SpeechWorker
Attachment #8686064 - Flags: review?(eitan) → review+
https://hg.mozilla.org/mozilla-central/rev/ada1afb12a16
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
tit is hard to tell if we are 100% fixed, but I will say that it looks much better.  Thanks for fixing this!
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: