Re: Test about Improve performance of call system.currentTimeMillis()

2015-08-14 Thread Stephan Ewen
In many cases, we actually need a proper timestamp (for example for timestamps in streaming records). I just ran a small micro-benchmark (Java 8, Linux kernel 3.11, 64bit VM) Making 5,000,000 function calls System.currentTimeMillis() took: 13240msecs System.nanoTime() took: 13355msecs At least o

Re: Test about Improve performance of call system.currentTimeMillis()

2015-08-14 Thread Ted Dunning
A big part of the cost of currentTimeMillis() is that it does a lot of work to make sure that the time is really time. If you only need a monotonic timer, nanoTime() might be what you want instead of currentTimeMillis(). nanoTime() is particularly handy when you want to avoid issues to do with le

Re: Test about Improve performance of call system.currentTimeMillis()

2015-08-14 Thread Stephan Ewen
Hi! Nice idea. It would be good to have this implemented as a kind of service that components can "acquire". A component that needs time can do something like "Clock clock = ClockService.aquire()", which increments a reference count in the central clock service and starts the thread if it has no

Re: Test about Improve performance of call system.currentTimeMillis()

2015-08-14 Thread Fabian Hueske
Thank you Fengbin Fang for doing this microbenchmark! The numbers clearly show that your approach is a lot faster. I'm curious if this does also affect the performance of a complete data flow. Looking forward to your results, Fabian 2015-08-13 8:35 GMT+02:00 Fangfengbin : > Hello! > > I have a

Test about Improve performance of call system.currentTimeMillis()

2015-08-13 Thread Fangfengbin
Hello! I have a test about cost of System.currentTimeMillis() and my CLOCK.currentTimeMillis() .( My clock will be a JVM singleton) Call currentTimeMillis function 1 times, System.currentTimeMillis() need about 1902ms and my CLOCK.currentTimeMillis() only need 119ms. The function perfor

Re: Improve performance of call system.currentTimeMillis()

2015-08-12 Thread Ufuk Celebi
On Wed, Aug 12, 2015 at 3:57 PM, Stephan Ewen wrote: > I curious what the results are! Same here! :-)

Re: Improve performance of call system.currentTimeMillis()

2015-08-12 Thread Stephan Ewen
@ffbin: Would this be a JVM singleton that updates a static field every millisecond? It is hard to say at this point whether this eliminates a bottleneck, but I think it is fine to try. To evaluate this, you could use a streaming job that attaches a timestamp to every record, and measure the diff

Re: Improve performance of call system.currentTimeMillis()

2015-08-12 Thread Maximilian Michels
I second Ufuk and Chensnay. Please provide us with a benchmark. I have a hard time to believe your implementation, along with the overhead that comes with it, will improve the streaming performance. Please, feel free to prove us wrong :) On Wed, Aug 12, 2015 at 11:48 AM, Chesnay Schepler < chesna

Re: Improve performance of call system.currentTimeMillis()

2015-08-12 Thread Chesnay Schepler
-.- if you look at into this issue that you opened https://issues.apache.org/jira/browse/FLINK-2471 you were given opinions from 2 separate people, with arguments, that the performance improvement(TBD) is either a) nonexistant or b) negligible. All you did was disregard those basically saying

Re: Improve performance of call system.currentTimeMillis()

2015-08-12 Thread Ufuk Celebi
Hey Fengbin, did you run a program and noticed some kind of performance degradation because of this? If yes, could you provide some details? If not, I would suggest to not do this. I can see how this "improves" performance in micro benchmarks, but not how it would affect the overall performance o

Improve performance of call system.currentTimeMillis()

2015-08-12 Thread Fangfengbin
Hello Some operators call system.currentTimeMillis() frequently and it is cost performance. I want to use a thread to call System.currentTimeMillis and update a long variable millTime. All other module do not need call System.currentTimeMillis() and can get millTime directly. I want to know