Giter VIP home page Giter VIP logo

Comments (4)

mhalbritter avatar mhalbritter commented on April 27, 2024

There's no Spring Boot code involved in this, so I'm not sure what we can do about that?

Also, your approach to benchmarking is flawed. You should use something like JMH.

from spring-boot.

larsaane avatar larsaane commented on April 27, 2024

This is the Spring code involved:

@Component
public class DatePerformanceTest {
    public DatePerformanceTest() {
        long start = System.currentTimeMillis();
        for (int i = 0; i < 3000000; i++) {
            String dateTime = "2024-03-22T12:34:56.123+00:00";
            ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateTime, ISO_OFFSET_DATE_TIME);
        }
        long end = System.currentTimeMillis();
        System.out.println("Total parse time ms: " + (end - start));

    }
}

from spring-boot.

larsaane avatar larsaane commented on April 27, 2024

Measuring the total time it takes to do the parsing should be just fine, We don't need JMH to see that it takes longer time running the parsing code in Spring compared to plain java.

from spring-boot.

wilkinsona avatar wilkinsona commented on April 27, 2024

This isn't an apples-to-apples comparison and, like @mhalbritter, I don't think it has anything to do with Spring.

When you run the code directly in plain Java, the JVM is in a different state to when the code's run as part of a Spring application. For example, the amount of heap that's available will be different and this will have a knock-on effect on garbage collection. The code that you're measuring creates a significant amount of gargage that has to be collected. When there's less heap available, this collection will have to be performed more often which will slow things down.

You could see this for yourself by running with -verbose:gc and comparing how hard the garbage collector has to work in each case.

from spring-boot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.