Sam,

Doing work on a Job definitely makes like easier for the main thread, so it's definitely a good option. The advantage of IStartup is that it happens after the IDE is painted so that approach has zero impact because it 100% offloads the work... But if no one can use it, because it might be disabled, it seems crippled. In terms of the concern about users disabling IStartup, I wonder who actually knows how to do that? I.e., is this more a theoretical problem as opposed to a significant problem?


On 17/12/2015 6:56 PM, Sam Davis wrote:
On Tue, Dec 15, 2015 at 11:22 PM, Mickael Istria <[email protected] <mailto:[email protected]>> wrote:


    Why not scheduling a job inside the IStartup? So you get the best
    user experience with faster startup, and still the possibility for
    advanced users who actually tweak that kind of thing to
    enable/disable it?


The concern is that users who don't know what they are doing will disable things to "improve" performance and end up with a broken IDE.

On Wed, Dec 16, 2015 at 2:00 AM, Ed Merks <[email protected] <mailto:[email protected]>> wrote:

    The disadvantage of scheduling a job in the startup, is that it's
    processed during the time when the IDE itself is trying to paint
    for the first time, whereas IStartup happens after the IDE is
    visible to the user.   So the former has the potential to impact
    the perceived startup time while the latter happens after the user
    perceives their IDE is up and running.


Hmm, on my machine it takes about 0.06ms to create and schedule a Job. So with 1200 plugins installed, if every single one of them started eagerly and scheduled a job, the total time spent scheduling jobs would be about 72ms, which is not perceptible. Of course these numbers are not worth the paper they're printed on, but nevertheless I think the time spent loading classes for the bundle's start() method is likely to be much greater than the time spent scheduling a job, so I'm not sure there is much gain to be had from using IStartup.

Cheers,
Sam


_______________________________________________
cross-project-issues-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev

_______________________________________________
cross-project-issues-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev

Reply via email to