Closed Bug 1269684 (gdoc_format10_ubuntu(260%)) Opened 8 years ago Closed 6 years ago

[perf][google suite][google docs] 260.31%(718472 ms) slower than Chrome when creating 10 page mix content(txt/img/table) and change txt formating

Categories

(Core :: General, defect, P3)

45 Branch
x86
Linux
defect

Tracking

()

RESOLVED INCOMPLETE
Performance Impact ?
Tracking Status
platform-rel --- -

People

(Reporter: sho, Unassigned)

References

(Blocks 2 open bugs)

Details

(Keywords: perf, Whiteboard: [platform-rel-Google][platform-rel-GoogleSuite][platform-rel-GoogleDocs])

User Story

You can find all test scripts on github link:
https://github.com/mozilla-twqa/hasal

And you can also find the running script name in comments
for example: 
test scripts: test_chrome_gdoc_create_txt_1
then you can specify the test script name on suite.txt and run it

Attachments

(5 files)

# Test Case
STR
1. Launch the browser with blank page
2. input the blank google doc page url 
3. input 1 page txt
4. select the last line of txt and change the font to Bold
5. input 1 image
6. input 1 page txt
7. select the last line of txt and make it a bullet
8. input 1 table
9. repeat step 3 to 8 3 times
10. input 1 page txt
11. select the last line of txt and change the font size to 18
12. close the browser

# Hardware
OS: Ubuntu 14.04 LTS 64-bit
CPU: i7-3770 3.4GMhz
Memory: 16GB Ram
Hard Drive: 1TB SATA HDD
Graphics: GK107 [GeForce GT 640]/ GF108 [GeForce GT 440/630]

# Browsers
Firefox version: 45.0.2
Chrome version: 50.0.2661.75

# Result
Browser | Run time (median value) 
Firefox | 994483.333333333 ms
Chrome  | 276011.111111111 ms
Product: Firefox → Core
Attached file Gecko profiler 5ms interval (deleted) —
Attached file Har file (deleted) —
Attached file Performance timing object (deleted) —
Test script name::
tests/test_firefox_gdoc_format10.py
tests/test_chrome_gdoc_format10.py
QA Contact: sho
Attached patch test_firefox_gdoc_format10.diff (deleted) — Splinter Review
Performance Timinig object

{  "navigationStart": 1462777888186,  "unloadEventStart": 0,  "unloadEventEnd": 0,  "redirectStart": 0,  "redirectEnd": 0,  "fetchStart": 1462777888190,  "domainLookupStart": 1462777888190,  "domainLookupEnd": 1462777888190,  "connectStart": 1462777888190,  "connectEnd": 1462777888190,  "requestStart": 1462777888193,  "responseStart": 1462777888603,  "responseEnd": 1462777888603,  "domLoading": 1462777888605,  "domInteractive": 1462777889525,  "domContentLoadedEventStart": 1462777890439,  "domContentLoadedEventEnd": 1462777890440,  "domComplete": 1462777893739,  "loadEventStart": 1462777893740,  "loadEventEnd": 1462777893746}
Comment on attachment 8750212 [details]
Gecko profiler 5ms interval

sample interval 5ms
sample buffer 10,000,000
Attachment #8750212 - Attachment description: Gecko profiler → Gecko profiler 5ms interval
Attached file Gecko Profiler 10ms interval (deleted) —
Analyze the running time between "navigationStart" and "domLoading"
From Gecko Profiling data, the Range [43116, 43621]:
 50   100%  Startup::XRE_Main
 13   26.0% ├─ nsRefreshDriver::Tick
 1771 17.8% │  ├─ preShell::Paint
  157  1.6% │  └─ preShell::Flush
    3  6.0% ├─ js::RunScript
    3  6.0% ├─ Timer::Fire
            │  └─ ...so on
            └─ ...so on
Depends on: 1271512
Version: unspecified → 45 Branch
Analyze the running time between "domLoading" and "loadEventEnd"
From Gecko Profiling data, the Range [43592, 51960]:
 836   100%  Startup::XRE_Main
 200   23.9% ├─ nsRefreshDriver::Tick
             ref: bug 1270427
 105   12.6% │  ├─ PreShell::Paint
  49    5.9% │  ├─ PreShell::Flush (Flush_Style)
  22    2.6% │  ├─ PreShell::Flush (Flush_InterruptibleLayout)
             │  └─ so on
 177   21.2% ├─ Timer::Fire
 174   20.8% ├─ nsInputStreamPump::OnInputStreamReady
 158   18.9% │  ├─ nsInputStreamPump::OnStateStop
             ref: bug 1267971
  11    1.3% │  ├─ nsInputStreamPump::OnStateStart
             │  └─ so on
 146   17.5% ├─ js::RunScript
             │  └─ ...so on
             └─ ...so on
Depends on: 1270427, 1267971
Analyze the running time when typing
From Gecko Profiling data, the Range [60591, 178539]:
 11794  100% Startup::XRE_Main
  3515 29.8% ├─ nsViewManager::DispatchEvent
  3492 29.6% │  └─ EventDispatcher::Dispatch
  3386 28.7% │     └─ js::RunScript
  3226 27.4% ├─ nsRefreshDriver::Tick
  1810 15.3% │  ├─ PreShell::Paint
   938  8.0% │  ├─ PreShell::Flush (Flush_Style)
             │  └─ so on
  2334 19.8% ├─ Timer::Fire
             │  └─ ...so on
             └─ ...so on
Depends on: 1271543
Depends on: 1271544
Depends on: 1271935
Do the running time analysis on changing the font bold
 179  100%  |- Startup::XRE_Main/
 60   33.5% |  |- nsRefreshDriver::Tick/
 35   19.6% |  |  |- PreShell::Paint/
 16   8.9%  |  |  |- PreShell::Flush (Flush_Style)/
  0    0%   |  |  |- so on/
 43    24%  |  |- Timer::Fire/
 16   8.9%  |  |- nsViewManager:DispatchEvent/
 16   8.9%  |  |  |- EventDispatcher::Dispatch/
Depends on: 1271936
Do the running time analysis on inserting image
1865  100%  |- Startup::XRE_Main/
 251  13.5% |  |- nsRefreshDriver::Tick/
 158  8.5%  |  |  |- PreShell::Paint/
 157  8.4%  |  |  |  |- nsLayoutUtils::PaintFrame/
 90   4.8%  |  |  |  |  |- nsDisplayList::PaintRoot/
 64   3.4%  |  |  |  |  |- nsLayoutUtils::PaintFrame::BuildDisplayList/
 55   2.9%  |  |  |- PreShell::Flush (Flush_Style)/
  0    0%   |  |  |- so on/
 232  12.4% |  |- Timer::Fire/
 118  6.3%  |  |- nsViewManager:DispatchEvent/
 63   3.4%  |  |  |- EventDispatcher::Dispatch/
Depends on: 1271943
Do the running time analysis on page break 
 24   100%  |- Startup::XRE_Main/
  9   37.5% |  |- nsRefreshDriver::Tick/
  4   16.7% |  |  |- PreShell::Paint/
  4   16.7% |  |  |  |- nsLayoutUtils::PaintFrame/
  0    0%   |  |  |- so on/
  9   37.5% |  |- Timer::Fire/
  6    25%  |  |- nsViewManager:DispatchEvent/
  6    25%  |  |  |- EventDispatcher::Dispatch/
Do the running time analysis on insert table
 475  100%  |- Startup::XRE_Main/
 133   28%  |  |- nsViewManager:DispatchEvent/
 133   28%  |  |  |- EventDispatcher::Dispatch/
 84   17.7% |  |- nsRefreshDriver::Tick/
 68   14.3% |  |  |- PreShell::Paint/
  0    0%   |  |  |- so on/
 74   15.6% |  |- Timer::Fire/
  6   1.3%  |  |- js::RunScript/
Depends on: 1272196
User Story: (updated)
Depends on: 1272567
No longer depends on: 1267971
Whiteboard: [platform-rel-Google][platform-rel-GoogleDocs]
platform-rel: --- → ?
Severity: normal → critical
Priority: -- → P1
platform-rel: ? → +
Alias: gdoc_format10
Alias: gdoc_format10 → gdoc_format10_ubuntu(260%)
Whiteboard: [platform-rel-Google][platform-rel-GoogleDocs] → [platform-rel-Google][platform-rel-GoogleSuite][platform-rel-GoogleDocs]
For the profile in comment 7, the current version of my categorization script gives:

Category breakdown:
script: 59%
wait: 19%
paint: 10%
uncategorized: 7%
GC: 2%

The 'wait' time comes from the unhelpful stack:

Startup::XRE_Main
__poll /build/eglibc-3GlaMS/eglibc-2.19/io/../sysdeps/unix/syscall-template.S:81 (in /lib/x86_64-linux-gnu/libc.so.6)

I think that's a bug in the stack capturing that prevents us from seeing why it's polling.
Summary: [Perf][google docs] 260.31%(718472 ms) slower than Chrome when creating 10 page mix content(txt/img/table) and change txt formating → [perf][google suite][google docs] 260.31%(718472 ms) slower than Chrome when creating 10 page mix content(txt/img/table) and change txt formating
plat-rel tracked at the meta level
platform-rel: + → -
Whiteboard: [platform-rel-Google][platform-rel-GoogleSuite][platform-rel-GoogleDocs] → [qf:investigate][platform-rel-Google][platform-rel-GoogleSuite][platform-rel-GoogleDocs]
Keywords: perf
Moving to p3 because no activity for at least 24 weeks.
Priority: P1 → P3
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INCOMPLETE
Performance Impact: --- → ?
Whiteboard: [qf:investigate][platform-rel-Google][platform-rel-GoogleSuite][platform-rel-GoogleDocs] → [platform-rel-Google][platform-rel-GoogleSuite][platform-rel-GoogleDocs]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: