Opened 6 years ago

Closed 5 years ago

#10837 closed Task (worksforme)

Image2: EventsBuffer integration

Reported by: Olek Nowodziński Owned by: Olek Nowodziński
Priority: Normal Milestone:
Component: General Version: 4.3 Beta
Keywords: Cc:

Description

The plugin should integrate CKEDITOR.tools.eventsBuffer to improve the performance of mousemove callback (Firefox, IE).

Attachments (3)

img2ebuff_chrome.png (3.3 KB) - added by Olek Nowodziński 6 years ago.
img2ebuff_ie9.png (3.0 KB) - added by Olek Nowodziński 6 years ago.
img2ebuff_ie8.png (3.5 KB) - added by Olek Nowodziński 6 years ago.

Download all attachments as: .zip

Change History (8)

comment:1 Changed 6 years ago by Jakub Ś

Status: newconfirmed

Changed 6 years ago by Olek Nowodziński

Attachment: img2ebuff_chrome.png added

Changed 6 years ago by Olek Nowodziński

Attachment: img2ebuff_ie9.png added

Changed 6 years ago by Olek Nowodziński

Attachment: img2ebuff_ie8.png added

comment:2 Changed 6 years ago by Olek Nowodziński

Owner: set to Olek Nowodziński
Status: confirmedreview

Created branch t/10837 with eventsBuffer while resizing.

The basic problem is that to keep UX at the high level, the maximum buffer interval for mousemove can be ~30ms. Otherwise the experience becomes choppy.

Such interval, however, makes eventsBuffer integration pointless because benefits (expressed by CPU load) are questionable and the code gets complicated. For example:

In Chrome a slight improvement can be observed:

In IE9 there's no improvement:

In IE8 there's a measurable drop of the load:

I'm leaving this ticket as something to be discussed.

comment:3 Changed 6 years ago by Piotrek Koszuliński

Milestone: CKEditor 4.3

I don't see a significant improvement too and, moreover, resizing works now smoothly even on IE9 on VM. Actually... it works there better than on Firefox running on my main OS.

Anyway, AFAIR it didn't work so well when I reported this issue. The current performance is good, so I'm removing a milestone, but we can keep this ticket if users will report us that something is wrong.

BTW. Avoid this kind of cache:

+        var $ = evt.data.$;
+
+        screenX = $.screenX;
+        screenY = $.screenY;

You use the variable twice, so you may lost more time on defining it than on accessing.

comment:4 Changed 5 years ago by Piotrek Koszuliński

Status: reviewassigned

comment:5 Changed 5 years ago by Olek Nowodziński

Resolution: worksforme
Status: assignedclosed
Note: See TracTickets for help on using tickets.
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy