https://github.com/psub/checkerframework-method-chaining-performance-regression
https://github.com/psub/checkerframework-method-chaining-performance-regression
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/psub/checkerframework-method-chaining-performance-regression
- Owner: pSub
- Created: 2019-11-13T10:09:40.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-11-13T10:33:50.000Z (over 6 years ago)
- Last Synced: 2025-10-07T00:35:56.774Z (8 months ago)
- Language: Java
- Size: 3.91 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Checker Framework Method-Chaining Performance Regression
========================================================
The bug was fixed in https://github.com/typetools/checker-framework/issues/2853.
This repository contains a code that demonstrates a performance regression in the [checker framework](https://checkerframework.org/). The
performance regression affects source code that uses long [method chains](https://en.wikipedia.org/wiki/Method_chaining). The performance
regression was introduced in versions 2.10.0 and 3.0.0. The performance in version 2.9.0 is OK.
The proof of concept in the repository might look constructed, however it is easy to come up with real-world examples that trigger the
performance regression. Some examples
* building large objects with the [fluid builder pattern](https://dzone.com/articles/fluent-builder-pattern)
* complex processing using [Java streams](https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html)
The problem hit me when upgrading the checker framework for the DMN analysis tool [dmn-checker](https://github.com/red6/dmn-check/),
specifically at a method in [FeelParser](https://github.com/red6/dmn-check/blob/master/validators/src/main/java/de/redsix/dmncheck/feel/FeelParser.java#L82).
The [tracis-ci job](https://travis-ci.org/pSub/checker-framework-letexpr-crash) provides a demonstration.