Skip to content

2. Performance

Fabio Piro edited this page Sep 5, 2016 · 13 revisions

A secret not to tell: Frameworks nowadays try to do everything for everyone, but each additional functionality adds up also more entropy. This often means more complexity, more heap memory usage, less portability and less performance...

Here a different path is chosen: only functionalities who most people use in a "common use-case" scenario are supported, and are as optimized as possible. Why use a nuclear power plant when you only need to light a bulb?

Specific and more rare requirements should follow the inheritance route, or use other complex alternatives (luckly the minimalcode code is so minimal that is trivial to make an adapter).

The code of all benchmarks is available in the minimalcode-benchmark project, for public review.

Beans ObjectWrapper Performance

Alternative libraries with similar functionality:

Get Benchmarks: nanoseconds required for each operation (lower is better)

Get Benchmark

Operation Apache Azekosky MinimalCode Jodd Spring
Get Simple 238,67 181,38 18,81 247,03 61,31
Get Nested 791,44 495,83 135,55 319,31 228,86
Get Indexed 168,06 289,93 26,69 279,19 285,70
Get Mapped 174,81 284,32 28,00 329,47 880,14
Get Total 1.372,98 1.251,45 209,04 1.175,00 1.456,01

Set Benchmarks: nanoseconds required for each operation (lower is better)

Set Benchmark

Operation Apache Azekosky MinimalCode Jodd Spring
Set Simple 252,83 377,42 22,10 275,18 773,88
Set Nested 815,71 706,83 143,24 381,56 955,95
Set Indexed 170,56 497,18 23,27 409,03 2.328,39
Set Mapped 184,83 537,32 24,89 366,04 3.086,70
Set Total 1.423,93 2.118,74 213,50 1.431,81 7.144,91
Clone this wiki locally