On 30 Jan 2013, at 09:14, Dan Berindei <dan.berin...@gmail.com> wrote:
> Manik, I think that JDK bug is pretty out-of-date, at least on Fedora. > > I ran the micro-benchmark in the bug (with some modifications: > https://github.com/danberindei/infinispan/blob/t_time_sources_test/core/src/test/java/org/infinispan/TimeSourcesTest.java) > when we had the last round of discussions on this: > > nanoTime: 4209836189827226918, time/call: 24ns > currentTimeMillis: 4209836189827226918, time/call: 31ns > > The bug initially reported 7ns/call with an optimization that cached the last > currentTimeMillis() value, so I'm not sure how much better we could get with > our own ClockService implementation. I'm pretty sure a 3% overall improvement > is out of reach, though. I suspect so as well, TBH. > > > > On Wed, Jan 30, 2013 at 10:53 AM, Manik Surtani <msurt...@redhat.com> wrote: > > On 30 Jan 2013, at 08:41, Bela Ban <b...@redhat.com> wrote: > > > > > On 1/29/13 6:45 PM, Manik Surtani wrote: > >> On 29 Jan 2013, at 17:17, Bela Ban <b...@redhat.com> wrote: > >> > >>> On 1/29/13 5:25 PM, Sanne Grinovero wrote: > >>>> Glad you started work on that :) > >>>> > >>>> Any currentTimeMillis() even today will blow away your cache line and > >>>> probably trigger a context switch. > >>> I understand the context switch (in general, it's not recommended anyway > >>> to invoke a system call in synchronized code), but I fail to see why > >>> this would blow the cache line. Are you referring to the cached Date > >>> value here ? > >> No, if you have a separate maint thread that updates a reusable > >> currentTimeMillis value. > >> > >> Do you use nanoTime() a lot then? Because that too is inefficient (as per > >> the Oracle blog) ... > > > > Define inefficient ! > > There was once a misconception that nanoTime() was faster (by an order of > magnitude) that currentTimeMillis(). And a similar misconception going the > other way. The reality, it would seem, is that they're both *fairly > inefficient*, depending on OS architecture. > > http://bugs.sun.com/view_bug.do?bug_id=6876279 > > > I'm sure we're talking about nanosec / microsec > > ranges here, so 3% faster won't cut it for me. If you contrast that to > > my current work, where I try to deliver a batch of N messages and > > therefore can skip N-1 lock acquitions/releases for M protocols, then > > the latter wins… > > Right, I'm not entirely sure it is a hotspot for optimisation though. I'm > going by some research that Sanne did and I'm doing a bit more homework > around that. > > > I still think a clock service is interesting, but for different reasons. > > As Sanne mentioned in Palma, it would be interesting to 'control' time, > > e.g. deliver 2 messages at the same time, or even go backwards in time. > > In the case of JGroups, we could use a clock service to screw up message > > reception (e.g. in testing) and therefore to test the correctness of > > some protocols. > > Right, but for me that would be an additional benefit and I would > de-prioritise if that was all I was getting from it. If it is even a > moderate performance boost though, say over 3% overall for such a > small/simple change, then I'd do it. > > - M > > > > > -- > > Bela Ban, JGroups lead (http://www.jgroups.org) > > > > _______________________________________________ > > infinispan-dev mailing list > > infinispan-dev@lists.jboss.org > > https://lists.jboss.org/mailman/listinfo/infinispan-dev > > -- > Manik Surtani > ma...@jboss.org > twitter.com/maniksurtani > > Platform Architect, JBoss Data Grid > http://red.ht/data-grid > > > _______________________________________________ > infinispan-dev mailing list > infinispan-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/infinispan-dev > > _______________________________________________ > infinispan-dev mailing list > infinispan-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/infinispan-dev -- Manik Surtani ma...@jboss.org twitter.com/maniksurtani Platform Architect, JBoss Data Grid http://red.ht/data-grid
_______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev