Блог пользователя Zzyzx

Автор Zzyzx, 10 лет назад, По-английски

Just recently I was trying to solve a problem but repeatedly encountered TLE verdict. This was while I was using Java 7.

Just thought I'd give it a shot and submitted the ditto same code but in Java 8. Works like a charm.

Java 7 submission Java 8 submission

And it's not some minor difference. There's a running time difference of > 2s, with Java 8 being the faster one.

I'm really curious as to why this happens. Yes, I know some kind of optimization is happening but what kind? A 2s difference is a LOT so it is non-trivial. Somebody explain?

  • Проголосовать: нравится
  • +7
  • Проголосовать: не нравится

»
10 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Lol very interesting. Thanks for sharing this! No idea what's going on :o

»
10 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

i got the result conversely. in my submission java 6 is the fastest.

java 6 java 7 java 8

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    You can't compare performance with such trivial code. If you submit it multiple times, you will probably see execution time fluctuate wildly.

    You should solve some computationally expensive problem and then test the performance.

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I might be wrong, but it might be that JAVA 8 always uses "server" VM when Java 7 defaults to "client".