Commit 5e675aa
authored
Add Heavy Load Benchmark for ByteCodeTranslator (#4300)
* Add Heavy Load Benchmark for ByteCodeTranslator
- Added `HeavyLoadBenchmarkTest` in `vm/tests` which runs ByteCodeTranslator against `JavaAPI`.
- Implemented `SimpleProfiler` to capture hotspots during translation.
- Updated `vm/tests/pom.xml` to include `JavaAPI` dependency and exclude benchmark from default execution.
- Updated `.github/workflows/parparvm-tests.yml` to run the benchmark.
- Updated `.github/scripts/generate-quality-report.py` to include benchmark results in the PR comment.
* Add Heavy Load Benchmark for ByteCodeTranslator
- Added `HeavyLoadBenchmarkTest` in `vm/tests` which runs ByteCodeTranslator against `JavaAPI`.
- Implemented `SimpleProfiler` to capture hotspots during translation.
- Updated `vm/tests/pom.xml` to exclude benchmark from default execution.
- Updated `.github/workflows/parparvm-tests.yml` to run the benchmark and ensure JavaAPI is built.
- Updated `.github/scripts/generate-quality-report.py` to include benchmark results in the PR comment.
* Add Heavy Load Benchmark for ByteCodeTranslator
- Added `HeavyLoadBenchmarkTest` in `vm/tests` which runs ByteCodeTranslator against `JavaAPI`.
- Implemented `SimpleProfiler` to capture hotspots during translation.
- Updated `vm/tests/pom.xml` to exclude benchmark from default execution.
- Updated `.github/workflows/parparvm-tests.yml` to run the benchmark and ensure JavaAPI is built.
- Updated `.github/scripts/generate-quality-report.py` to include benchmark results in the PR comment.
* Add Heavy Load Benchmark for ByteCodeTranslator
- Added `HeavyLoadBenchmarkTest` in `vm/tests` which runs ByteCodeTranslator against `JavaAPI`.
- Implemented `SimpleProfiler` to capture hotspots during translation.
- Updated `.github/workflows/parparvm-tests.yml` to run the benchmark and ensure JavaAPI is built, and exclude benchmark from standard tests.
- Updated `.github/scripts/generate-quality-report.py` to include benchmark results in the PR comment.
* Add Heavy Load Benchmark for ByteCodeTranslator
- Added `HeavyLoadBenchmarkTest` in `vm/tests` which runs ByteCodeTranslator against `JavaAPI`.
- Implemented `SimpleProfiler` to capture hotspots during translation.
- Updated `.github/workflows/parparvm-tests.yml` to run the benchmark and ensure JavaAPI is built, exclude benchmark from standard tests, and build dependencies for benchmark.
- Updated `.github/scripts/generate-quality-report.py` to include benchmark results in the PR comment.
* Refine Heavy Load Benchmark to scan and reference all public JavaAPI classes
- Updated `HeavyLoadBenchmarkTest` to scan `JavaAPI.jar` using ASM.
- Generate `BenchmarkMain` referencing all detected public classes via `Class.forName`.
- Use `@TempDir` for cleanup.
- This increases the translation load significantly compared to a simple Hello World.
* Add Heavy Load Benchmark for ByteCodeTranslator using Core
- Added `HeavyLoadBenchmarkTest` which translates `JavaAPI` and `CodenameOne Core` to simulate heavy load.
- Updated `.github/workflows/parparvm-tests.yml` to build `CodenameOne Core` before running benchmark.
- Refined test to scan jars using ASM and reference public classes via `Class.forName`.
- This provides a realistic stress test for the translator.
* Add Heavy Load Benchmark using HelloCodenameOne and IOSPort
- Updated `HeavyLoadBenchmarkTest` to scan IOSPort, NativeIOS, and HelloCodenameOne jars if available.
- Updated CI workflow to build the full CodenameOne project and HelloCodenameOne sample app to provide these artifacts.
- Unzips nativeios.jar from the IOS bundle to simulate native source inclusion.
- This creates a realistic translation workload.
* Add Heavy Load Benchmark with Full Application Load
- Updated `HeavyLoadBenchmarkTest` to scan IOSPort, NativeIOS, and HelloCodenameOne jars if available.
- Updated CI workflow to build the full CodenameOne project and HelloCodenameOne sample app to provide these artifacts.
- Unzips nativeios.jar from the IOS bundle to simulate native source inclusion.
- Compiles HelloCodenameOne sources locally within the test to ensure availability.
- This creates a realistic translation workload.
* Add Heavy Load Benchmark using Maven Central Artifacts
- Updated `HeavyLoadBenchmarkTest` to use `codenameone-core` and `codenameone-ios` artifacts downloaded via `maven-dependency-plugin`.
- Updated `vm/tests/pom.xml` to include dependencies and copy them to `target/benchmark-dependencies`.
- Removed complex build steps from CI workflow.
- Test compiles HelloCodenameOne source against downloaded artifacts.
---------
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>1 parent a59f028 commit 5e675aa
File tree
4 files changed
+475
-1
lines changed- .github
- scripts
- workflows
- vm/tests
- src/test/java/com/codename1/tools/translator
4 files changed
+475
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
441 | 441 | | |
442 | 442 | | |
443 | 443 | | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
444 | 452 | | |
445 | 453 | | |
446 | 454 | | |
| |||
650 | 658 | | |
651 | 659 | | |
652 | 660 | | |
| 661 | + | |
653 | 662 | | |
654 | 663 | | |
655 | 664 | | |
| |||
672 | 681 | | |
673 | 682 | | |
674 | 683 | | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
675 | 687 | | |
676 | 688 | | |
677 | 689 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
81 | | - | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
82 | 92 | | |
83 | 93 | | |
84 | 94 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
34 | 53 | | |
35 | 54 | | |
36 | 55 | | |
37 | 56 | | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
38 | 75 | | |
39 | 76 | | |
40 | 77 | | |
| |||
0 commit comments