Quoting from David Holme's blog:

> The nanoTime method uses the highest resolution clock available on the 
> platform, and while its return value is in nanoseconds, the update resolution 
> is typically only microseconds.
https://blogs.oracle.com/dholmes/entry/inside_the_hotspot_vm_clocks

I think we can rely on nanoTime as a clock with microsecond
resolution. Having said that can't we say printing out nanoTime in
websocket message handler will give us a fair number (with microsecond
accuracy) to measure how quickly the message handler is being called?

All I am saying is that I see an obvious hiccup in order of
milliseconds when threads are switching which I have no explanation
for.

Please advise if you think the way I am measuring is wrong.

Cheers

Farzad

On Mon, Nov 2, 2015 at 4:56 AM, David kerber <dcker...@verizon.net> wrote:
> On 10/31/2015 10:51 AM, David Balažic wrote:
>>
>> Just a note: When most of you say "resolution" what you think about is
>> actually called "accuracy".
>> (also see "precision" , here is a good roundup:
>> http://www.tutelman.com/golf/measure/precision.php )
>
>
> I'm not sure about the others, but as an Electrical Engineer, I know the
> difference between resolution, precision, and accuracy.  In the post I made
> earlier, I said and meant "resolution".
>
>
>
>
>>
>> David Balažic
>> Software Engineer
>> www.comtrade.com
>>
>>> -----Original Message-----
>>> From: Konstantin Preißer [mailto:kpreis...@apache.org]
>>> Sent: 31. October 2015 10:27
>>> To: Tomcat Users List
>>> Subject: [OT] RE: 80ms delay switching between worker threads
>>> Importance: Low
>>>
>>> Hi Christopher,
>>>
>>>> -----Original Message-----
>>>> From: Christopher Schultz [mailto:ch...@christopherschultz.net]
>>>> Sent: Saturday, October 31, 2015 3:43 AM
>>>>
>>>> What OS are you using? IIRC, the Windows timer has horrible resolution.
>>>> you can call System.currentTimeNanos all you want, but you won't get
>>>> anything meaningful lower than some threshold regardless of the actual
>>>> least significant digits coming back from those calls.
>>>
>>>
>>> While that may have been true in ancient versions like XP and Vista, at
>>> least
>>> starting with Win7 QueryPerformanceCounter() uses the processor's TSC [1]
>>> (where Vista used the HPET if available) so you should have a very high
>>> resolution here. E.g. running the following Java program:
>>>
>>>      int[] iterations = { 100, 120, 150, 250 };
>>>
>>>      for (int i = 0; i < iterations.length; i++) {
>>>          for (int j = 0; j < 3; j++) {
>>>              long currentTime = System.nanoTime();
>>>              double startValue = 1000;
>>>              for (int z = 0; z < iterations[i]; z++) {
>>>                  startValue = Math.pow(startValue, 0.99);
>>>              }
>>>              long difference = System.nanoTime() - currentTime;
>>>              System.out.println(iterations[i] + " pow iterations ms took
>>> " +
>>> (difference / 1000L) + " µs");
>>>          }
>>>      }
>>>
>>> prints on my system something like:
>>>
>>> 100 pow iterations ms took 25 µs
>>> 100 pow iterations ms took 7 µs
>>> 100 pow iterations ms took 7 µs
>>> 120 pow iterations ms took 8 µs
>>> 120 pow iterations ms took 9 µs
>>> 120 pow iterations ms took 8 µs
>>> 150 pow iterations ms took 11 µs
>>> 150 pow iterations ms took 10 µs
>>> 150 pow iterations ms took 13 µs
>>> 250 pow iterations ms took 18 µs
>>> 250 pow iterations ms took 17 µs
>>> 250 pow iterations ms took 17 µs
>>>
>>>
>>> So there should at least be a microsecond resolution. On a C# program
>>> using
>>> Stopwatch I get similar results in the range from 5 to 12 µs.
>>>
>>> Note, QueryPerformanceFrequency() [2] can be used to get the frequency
>>> of the timer which is exposed in .Net through static
>>> System.Diagnostics.Stopwatch.Frequency field as ticks per second. On my
>>> system it prints "3323580" so the resolution should be around ~0.3
>>> microseconds.
>>>
>>>
>>> Regards,
>>> Konstantin Preißer
>>>
>>> [1] https://msdn.microsoft.com/en-
>>> us/library/windows/desktop/dn553408%28v=vs.85%29.aspx
>>> [2] https://msdn.microsoft.com/de-
>>> de/library/windows/desktop/ms644905%28v=vs.85%29.aspx
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to