Hmm, it seems that repaint() doesn't behave identically on Linux and Mac—under OS X, the patch appears to have no effect (Qt 4.8.5).
On Sat, Aug 31, 2013 at 7:29 PM, Marc Simpson <[email protected]> wrote: > Slower, but not sluggish, on my machine. With 1000 "steps" and no > delay, I'm returned to the prompt in 2.3s; without the patch, this is > more or less immediate ~0.2s (via 6!:2). I don't think such behaviour > is particularly surprising as we're requesting the UI be updated > following J output rather than allowing Qt to optimise for a later > repaint (later being the primary issue here). Incidentally, j602 and > the patched j801 take roughly the same amount of time, so this isn't > necessarily a performance regression if the outlined behaviour is > considered correct. > > Generally speaking, repaint() is discouraged where update() will do: > "We suggest only using repaint() if you need an immediate repaint, for > example during animation. In almost all circumstances update() is > better, as it permits Qt to optimize for speed and minimize flicker". > Unfortunately, update() "does not cause an immediate repaint; instead > it schedules a paint event for processing when Qt returns to the main > event loop"—which is precisely what I'm trying to work around. > > Are you able to test on Win32 and benchmark against j602 and the > current qtide master? > > Best, > Marc > > On Sat, Aug 31, 2013 at 6:47 PM, bill lam <[email protected]> wrote: >> I'm not familiar with qt IDE, just curious, will un-buffered output make it >> sluggish because of the time taking for repaint? >> eg. Loop for one thousand times and without the delay. >> >> On 31 Aug, 2013, at 8:29 PM, Marc Simpson <[email protected]> wrote: >> >>> Terminal output is currently buffered until control is passed back to >>> the user. For example, executing the following verb: >>> >>> step=: 3 : 0 >>> for_n. i.y do. >>> smoutput'Step' >>> 6!:3]1 >>> end. >>> ) >>> step 5 >>> >>> causes the IDE to hang for 5 seconds, then blit out 5 'Step's. (The >>> GTK IDE behaves identically.) >>> >>> One possible fix: >>> https://github.com/0branch/jqtide/commit/2aca7699961e06dd858dee109d65cdaaa397a730 >>> -- here, Term is repainted after output, thereby providing more >>> immediate feedback and behaviour in line with jconsole & j602. >>> >>> Thoughts? >>> >>> Best, >>> Marc >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
