https://github.com/agkloop/jdklambda-invokedynamic
https://github.com/agkloop/jdklambda-invokedynamic
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/agkloop/jdklambda-invokedynamic
- Owner: agkloop
- Created: 2020-05-09T02:03:48.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-08-11T09:18:45.000Z (almost 5 years ago)
- Last Synced: 2025-06-03T06:37:12.974Z (12 months ago)
- Language: Java
- Size: 24.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# JDKLambda-invokeDynamic
playing with java byteCode instruction `invokeDynamic` that is used to create lambda functions `(int a,int b)-> a+b`
and many more and used a lot by graalvm
```java
var rule1 = new Rule("Name", "getName", "setName");
var rule2 = new Rule("Address name", "getAddress.getName", "getAddress.setAddressName");
var rule3 = new Rule("Phone numbers", "getPhones", "setPhoneList", PHONE_PHONE_FUNCTION);
var rule4 = new Rule("Simple map mapping", "getMapSimple", "setMapSimple");
var rule5 = new Rule("Complicated map mapping", "getMapComplicated", "setMapComplicated", MAP_MAP_FUNCTION);
````
|Benchmark |(index) |Mode | Cnt | Score | Error | Units |
| --------------------------------------------------- | ------ | ---- | --- | --------- | ----- | ------ |
|DynamicMappingBenchmark.invokeDynamicWithAllTheRules | N/A |avgt | 8 | 402.480 ± |30.886 | ns/op |
|DynamicMappingBenchmark.invokeDynamic_SingleRule | 1 |avgt | 6 | 15.633 ± | 0.504 | ns/op |
|DynamicMappingBenchmark.invokeDynamic_SingleRule | 2 |avgt | 6 | 32.697 ± |21.061 | ns/op |
|DynamicMappingBenchmark.invokeVirtual | N/A |avgt | 8 | 279.842 ± |30.260 | ns/op |