Farzad, On 11/3/15 2:45 PM, Farzad Panahi wrote: > I wish I could get my hands on a real server : )
What computer do you use to access the server? That one will certainly work for this kind of testing. -chris > On Mon, Nov 2, 2015 at 12:23 PM, David kerber <dcker...@verizon.net> wrote: >> On 11/2/2015 3:09 PM, Farzad Panahi wrote: >>> >>> 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. >> >> >> I'm with Chris on this one: I think it's due to running on a VM rather than >> on real hardware. >> >> >> >>> >>> 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