Opened 11 years ago

Closed 10 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 11 years ago.
img2ebuff_ie9.png (3.0 KB) - added by Olek Nowodziński 11 years ago.
img2ebuff_ie8.png (3.5 KB) - added by Olek Nowodziński 11 years ago.

Download all attachments as: .zip

Change History (8)

comment:1 Changed 11 years ago by Jakub Ś

Status: newconfirmed

Changed 11 years ago by Olek Nowodziński

Attachment: img2ebuff_chrome.png added

Changed 11 years ago by Olek Nowodziński

Attachment: img2ebuff_ie9.png added

Changed 11 years ago by Olek Nowodziński

Attachment: img2ebuff_ie8.png added

comment:2 Changed 11 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 11 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 10 years ago by Piotrek Koszuliński

Status: reviewassigned

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

Resolution: worksforme
Status: assignedclosed
Note: See TracTickets for help on using tickets.
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy