Uploaded image for project: 'Olingo'
  1. Olingo
  2. OLINGO-1302

Performance: Olingo V4 is slower than Olingo V2 when de-serializing JSON response body

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Not A Bug
    • (Java) V4 4.4.0
    • None
    • odata4-client

    Description

      Olingo V4 is slower than Olingo V2 when de-serializing the JSON response body.

      The following request to the OData V2 Microsoft NorthWind source returns 500 records with 26 columns:
      http://services.odata.org/V2/Northwind/Northwind.svc/Invoices?$top=500&$format=json

      The following request to the OData V4 Microsoft NorthWind source returns 500 records with 26 columns:
      http://services.odata.org/V4/Northwind/Northwind.svc/Invoices?$top=500&$format=json

      When parsing the V2 response by calling the EntityProvider.readFeed() method, the elapsed time is approximately 180 ms.
      When parsing the V4 response by calling the getODataEntitySet() method, the elapsed time is approximately 320 ms.

      I have attached a zipped up Eclipse project (olingo-performance-test) which contains two Java programs (TestOlingoV2.java, TestOlingoV4.java).
      These programs can be run to compare the performance of the JSON deserialization in Olingo V2 and V4.
      The Northwind metadata and the JSON response body are read from files included in the project.

      I have attached a snapshot image from a SAP Java Profiling tool showing profiling on the TestOlingoV4 program.

       

       

       

      Attachments

        1. olingo-performance-test.zip
          185 kB
          Scott Webster
        2. TestOlingoV4.Profiling.PNG
          62 kB
          Scott Webster

        Activity

          People

            Unassigned Unassigned
            dswebster Scott Webster
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: