Commit 938309b
committed
Optimize integration test performance
### Summary
This PR improves the performance of integration tests by implementing compiled binary caching and optimizing compiler flags. The overall test suite execution time has been reduced by approximately 17% (from ~11.5s to ~9.5s).
### Performance Improvements
| Metric | Before | After | Improvement |
|--------|--------|-------|-------------|
| Full test suite | ~11.5s | ~9.5s | ~17% faster |
| Integration tests only | ~10.5s | ~8.3s | ~21% faster |
### Changes
#### 1. Compiled Binary Caching
Added a caching mechanism to avoid unnecessary recompilation of the same parsers:
- Introduced `IntegrationHelper.compiled_parsers` hash to track compiled binaries
- Cache key includes both parser name and lrama command arguments
- Only recompiles when the parser hasn't been built or the binary doesn't exist
- Particularly effective for parsers used multiple times:
- `after_shift`: used 2 times
- `destructors`: used 4 times
#### 2. Optimized Compiler Flags
Changed GCC compilation flags to prioritize compilation speed over runtime performance:
- Changed from `-ggdb3` to `-g` (minimal debug info)
- Added `-O0` flag (no optimization)
- These changes are appropriate for integration tests since we only care about correctness, not runtime performance
#### 3. Memory Cleanup
Added `after(:all)` hook to clear the compiled parsers cache, preventing memory bloat during test runs.1 parent ec4238a commit 938309b
1 file changed
+20
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
9 | 15 | | |
10 | 16 | | |
11 | 17 | | |
| |||
35 | 41 | | |
36 | 42 | | |
37 | 43 | | |
38 | | - | |
39 | | - | |
40 | | - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
41 | 52 | | |
42 | 53 | | |
43 | 54 | | |
| |||
58 | 69 | | |
59 | 70 | | |
60 | 71 | | |
61 | | - | |
| 72 | + | |
62 | 73 | | |
63 | 74 | | |
64 | 75 | | |
65 | 76 | | |
66 | 77 | | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
67 | 83 | | |
68 | 84 | | |
69 | 85 | | |
| |||
0 commit comments