The metadata serialization format affects the API performance.

This is less pronounced in the latest arche-core versions but still noticeable.

If you just want to know the best solutions:

Test results

A few tests were performed on a copy of the ARCHE production instance containing 336k resources and 11.8M triples.

Formats comparison for current arche-core version

  • Since version 3.8 arche-core is capable of streaming the response with a constant memory footprint no matter the metadata serialization format.
  • In the current version generating text/turtle is the most time consuming (roughly 50% more than other formats) and application/n-triples is the fastest serialization format.
  • A small exception is the application/ld+json which is the slowest for small triples count (with the current ARCHE production instance settings below 1000 triples). This is because in such a case the result is reshaped to have a more compact structure while for larger triples count just a streaming JSON-LD serializer is used.

Performance changes across arche-core versions

  • arche-core 1.10 optimized speed and memory footprint of application/n-triples and speed of text/turtle
  • arche-core 3.8 introduced constant memory footprint of all serialization formats and improved performance of application/ld+json and application/rdf+xml at the cost of slight performance degradation of application/n-triples and speed of text/turtle