Closed Bug 555925 Opened 14 years ago Closed 7 years ago

OOP plugins 1.5x slower than normal plugins.

Categories

(Core Graveyard :: Plug-ins, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: romaxa, Unassigned)

Details

Attachments

(3 files, 3 obsolete files)

Attached file test plugin (obsolete) —
Take Fennec Qt build.
Compile test plugin in attachments.
run fennec on defaultTest.html page with and without dom.ipc.plugins.enabled pref

dom.ipc.plugins.enabled=false - ~28fps
dom.ipc.plugins.enabled=true - ~8fps

Also "return" in beginning of nsPluginInstanceOwner::Paint function does not help.
Seems some problem in IPC or IPC/qt
Attached file Fixed testcase
Ok, seems first testcase was not very good, because it was overloading CPU and IPC bus with too frequent InvalidateRect calls....

In new test it is fixed, and no difference is:
IPC-ON ~ 30Fps
IPC-OFF ~ 45Fps
IPC - 1.5 times slower now
Attachment #435863 - Attachment is obsolete: true
Summary: [QT-Port ?] OOP plugins 3.5x slower than normal plugins. → OOP plugins 1.5x slower than normal plugins.
Local render - is new API which is painting plugins with image buffer 
X-Surf mode - normal XWindowless API
NO-IPC:
X-Surf mode  - 32 FPS
Local render - 45.5 FPS

IPC:
X-Surf mode  - 27.5 FPS
Local render - 36.0 FPS

We still have some perf problem with IPC plugins... not sure is it a lack of IPC communication or something else.
Comment on attachment 443620 [details]
Opreport with test plugin IPC disabled (60FPS)

Ok, seems this profile data not valid...
Attachment #443620 - Attachment is obsolete: true
Comment on attachment 443621 [details]
same test plugin, with IPC enabled ~50FPS

This too
Attachment #443621 - Attachment is obsolete: true
I've checked test plugin which is fitting by size in one canvas tile, and FPS rate for widget paint:
NON-IPC - 35fps
IPC - 33.5-34fps

Son in this case different is almost minimal
When plugin size is bigger than one fennec tile (youtube case), then we have more significant difference:
NON-IPC - 26-27fps
IPC - 22fps
Plugin size bigger than fennec tile, we have 2 calls in different process during 1 paint event.

When Plugin size <= fennec tile then we have 1 call...

with 1 call we have ~1.5-2 fps difference
with 2 calls we have ~4 fps difference

I'll try to apply patch from bug 556487, and check how it affect on FPS rate when we have 0 calls to plugin process in paint event
Resolving old bugs which are likely not relevant any more, since NPAPI plugins are deprecated.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INCOMPLETE
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: