Hi everybody, I've updated and fixed the feature branch and I'm confident enough to merge it :-)
Last build is almost successful (http://ci.libreoffice.org/job/lo_gerrit/1836/), except that I had three JUnit failures on Windows for my last three builds, which I couldn't reproduce locally. I'll just quote my mail from last month. Am 16.09.2016 um 23:49 schrieb Jan-Marek Glogowski: > > This fixes my mail merge performance problem since the 5.0 merge of idle > job handling. > > It completely drops the idea of separated idle and timer handling and > drops a lot of special handling and workarounds for problems in the > original code, but keeps the Idle class for convenience. I tried to list > all the revert commit ids and started to test the original bugs. > > Everything is just scheduled by priority and Idles now get a very low > one per default, while they previously had the same one then timers. > Additionally it drops the 1ms lag for tasks, which actually adds up, as > idle tasks weren't instantly scheduled. > > I already fixed the two most obvious busy loop bugs in Writer with > workarounds for the general idle job handler and the statistics > collector. Instead of polling for work I would like to switch these to > be enabled on demand, but that'll definitely take more work. Currently > they are converted to timers, which check for work every few seconds, > then should switch to idle - ok 0ms timeouts, until all work is processed. The last patch is just a hack. Quite probably setting the document to the busy state should "simply" disable the DocumentTimerManager, also in regard to SwLayIdle::DoIdleJob / SwLayIdle::SwLayIdle / SwViewShell::LayoutIdle. This feels duplicated, but seems quite hard to untangle. > I tried to simplify the priority groups to make it easier to select the > correct one. There are still some suspicions HIGHEST ones. I had to guess > the new dependencies from the original priority of the idles, but I'm > quite sure there is some missing stuff. I would like to get some kind of > annotations to be able to build a priority tree of all of them for a > better overview. > > It would be great to get feedback from people of all other platforms / > VCL backends. > > Thanks for your comments and feedback > > Jan-Marek > > P.S. it adds a VCL python GDB script, which can be used to dump the list > of currently scheduled tasks. > > P.P.S. naming is sill a mess. Sometimes it's task, sometimes event. The > scheduler class is actually the base class for the timers and idles and > should be renamed Event or Task. _______________________________________________ LibreOffice mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice
