Not to throw a wrench into this discussion, but I decided to see if this would work better with a Timer, than AsyncUpdater.
I really don’t understand what I’m seeing.
All I am doing here is calling a Timer every 10 ms, and then printing out a timestamp of when the timerCallback occurs.
In JUCE 7, the callbacks occur with elapsed times between them of approximately 5~15 ms.
JUCE 7.0.12
00:07:23.321 663 timerCallback, elapsed 00:00:00.014 686 - 14 ms
00:07:23.328 060 timerCallback, elapsed 00:00:00.006 396 - 6 ms
00:07:23.338 403 timerCallback, elapsed 00:00:00.010 343 - 10 ms
00:07:23.347 810 timerCallback, elapsed 00:00:00.009 406 - 9 ms
00:07:23.359 500 timerCallback, elapsed 00:00:00.011 689 - 11 ms
00:07:23.372 375 timerCallback, elapsed 00:00:00.012 875 - 12 ms
00:07:23.380 880 timerCallback, elapsed 00:00:00.008 505 - 8 ms
00:07:23.390 343 timerCallback, elapsed 00:00:00.009 462 - 9 ms
00:07:23.405 149 timerCallback, elapsed 00:00:00.014 806 - 14 ms
00:07:23.410 729 timerCallback, elapsed 00:00:00.005 579 - 5 ms
00:07:23.421 797 timerCallback, elapsed 00:00:00.011 068 - 11 ms
00:07:23.430 300 timerCallback, elapsed 00:00:00.008 502 - 8 ms
00:07:23.440 922 timerCallback, elapsed 00:00:00.010 621 - 10 ms
00:07:23.455 554 timerCallback, elapsed 00:00:00.014 631 - 14 ms
00:07:23.461 246 timerCallback, elapsed 00:00:00.005 692 - 5 ms
00:07:23.473 636 timerCallback, elapsed 00:00:00.012 389 - 12 ms
00:07:23.488 600 timerCallback, elapsed 00:00:00.014 963 - 14 ms
00:07:23.495 738 timerCallback, elapsed 00:00:00.007 138 - 7 ms
00:07:23.506 964 timerCallback, elapsed 00:00:00.011 226 - 11 ms
00:07:23.522 907 timerCallback, elapsed 00:00:00.015 942 - 15 ms
00:07:23.526 401 timerCallback, elapsed 00:00:00.003 494 - 3 ms
In JUCE 8, I get a very strange output that starts out similar, but then turns into alternating elapsed times between 0~84 ms.
JUCE 8.0.3
00:14:49.654 284 timerCallback, elapsed 00:00:00.015 629 - 15 ms
00:14:49.660 709 timerCallback, elapsed 00:00:00.006 425 - 6 ms
00:14:49.673 744 timerCallback, elapsed 00:00:00.013 034 - 13 ms
00:14:49.689 036 timerCallback, elapsed 00:00:00.015 291 - 15 ms
00:14:49.694 294 timerCallback, elapsed 00:00:00.005 258 - 5 ms
00:14:49.706 950 timerCallback, elapsed 00:00:00.012 655 - 12 ms
00:14:49.718 493 timerCallback, elapsed 00:00:00.011 543 - 11 ms
00:14:49.804 300 timerCallback, elapsed 00:00:00.085 807 - 85 ms
00:14:49.804 564 timerCallback, elapsed 00:00:00.000 264 - 0 ms
00:14:49.886 819 timerCallback, elapsed 00:00:00.082 254 - 82 ms
00:14:49.886 998 timerCallback, elapsed 00:00:00.000 178 - 0 ms
00:14:49.969 333 timerCallback, elapsed 00:00:00.082 335 - 82 ms
00:14:49.969 517 timerCallback, elapsed 00:00:00.000 183 - 0 ms
00:14:50.053 782 timerCallback, elapsed 00:00:00.084 264 - 84 ms
00:14:50.053 966 timerCallback, elapsed 00:00:00.000 183 - 0 ms
00:14:50.136 089 timerCallback, elapsed 00:00:00.082 123 - 82 ms
00:14:50.136 308 timerCallback, elapsed 00:00:00.000 218 - 0 ms
00:14:50.220 276 timerCallback, elapsed 00:00:00.083 967 - 83 ms
00:14:50.220 470 timerCallback, elapsed 00:00:00.000 194 - 0 ms
00:14:50.303 846 timerCallback, elapsed 00:00:00.083 375 - 83 ms
00:14:50.304 134 timerCallback, elapsed 00:00:00.000 288 - 0 ms
00:14:50.388 589 timerCallback, elapsed 00:00:00.084 454 - 84 ms
00:14:50.388 803 timerCallback, elapsed 00:00:00.000 214 - 0 ms
00:14:50.470 692 timerCallback, elapsed 00:00:00.081 889 - 81 ms
00:14:50.470 907 timerCallback, elapsed 00:00:00.000 214 - 0 ms
00:14:50.553 486 timerCallback, elapsed 00:00:00.082 579 - 82 ms
00:14:50.553 712 timerCallback, elapsed 00:00:00.000 226 - 0 ms
00:14:50.638 764 timerCallback, elapsed 00:00:00.085 051 - 85 ms
00:14:50.638 964 timerCallback, elapsed 00:00:00.000 199 - 0 ms
00:14:50.722 107 timerCallback, elapsed 00:00:00.083 142 - 83 ms
00:14:50.722 353 timerCallback, elapsed 00:00:00.000 246 - 0 ms
00:14:50.804 076 timerCallback, elapsed 00:00:00.081 723 - 81 ms
The project for this is here:
CodeEditorTest4.zip (13.2 KB)
Unless I’m crazy and doing something really wrong. But this is the timerCallback:
private:
class TimerUpdater : public juce::Timer
{
public:
TimerUpdater(MainComponent& mainIn)
: main (mainIn) {}
private:
virtual void timerCallback() override
{
auto nowTime = juce::Time::getMillisecondCounterHiRes();
auto elapsed = nowTime - lastTime;
lastTime = nowTime;
auto millis = ((int) (elapsed) % 1000);
// add a timestamp indicating this function was called
juce::String messageText;
messageText << main.getTimeStamp(nowTime) << " timerCallback, elapsed " << main.getTimeStamp(elapsed) << " - " << juce::String(millis) <<" ms\n";
// add the text or text chunk to the end of the messageDisplay
main.messageDisplay->moveCaretToEnd(false);
main.messageDisplay->insertTextAtCaret (messageText);
}
MainComponent& main;
double lastTime;
EDIT:
Not to mention… if I happen to be running another program on this laptop, that uses > 150% or so of 1 CPU, the time between callbacks in the JUCE 8 version increases quite a bit, while the JUCE 7-compiled version does not.
JUCE 8.0.3
00:26:31.887 431 timerCallback, elapsed 00:00:00.138 541 - 138 ms
00:26:31.887 763 timerCallback, elapsed 00:00:00.000 332 - 0 ms
00:26:31.898 105 timerCallback, elapsed 00:00:00.010 341 - 10 ms
00:26:32.034 466 timerCallback, elapsed 00:00:00.136 361 - 136 ms
00:26:32.167 861 timerCallback, elapsed 00:00:00.133 394 - 133 ms
00:26:32.168 182 timerCallback, elapsed 00:00:00.000 320 - 0 ms
00:26:32.179 208 timerCallback, elapsed 00:00:00.011 026 - 11 ms
00:26:32.315 768 timerCallback, elapsed 00:00:00.136 559 - 136 ms
00:26:32.316 077 timerCallback, elapsed 00:00:00.000 309 - 0 ms
00:26:32.450 443 timerCallback, elapsed 00:00:00.134 365 - 134 ms
00:26:32.450 788 timerCallback, elapsed 00:00:00.000 344 - 0 ms
00:26:32.582 202 timerCallback, elapsed 00:00:00.131 414 - 131 ms
00:26:32.582 531 timerCallback, elapsed 00:00:00.000 328 - 0 ms
00:26:32.720 748 timerCallback, elapsed 00:00:00.138 216 - 138 ms
00:26:32.721 070 timerCallback, elapsed 00:00:00.000 322 - 0 ms
00:26:32.731 187 timerCallback, elapsed 00:00:00.010 116 - 10 ms
00:26:32.865 699 timerCallback, elapsed 00:00:00.134 511 - 134 ms
00:26:32.866 031 timerCallback, elapsed 00:00:00.000 332 - 0 ms
