TypePHP 编译器
https://swoole.com/aot/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.5 KiB
35 lines
1.5 KiB
# Known-array append benchmark
|
|
|
|
This benchmark appends a function result to a known array, 1,000 times per
|
|
round, and accumulates a checksum. It isolates the append fallback that must
|
|
materialize its RHS before writing. It does not represent every PHP workload.
|
|
|
|
With PHP 8.5 and a matching PHPX/embed installation, from this directory:
|
|
|
|
```sh
|
|
php run.php 100000
|
|
php ../../bin/tpc.php project.yml --no-progress -o array_append_benchmark
|
|
./array_append_benchmark 100000
|
|
```
|
|
|
|
The checksum must be `200000000`. Build baseline and candidate revisions into
|
|
separate build directories and binary paths. Keep PHPX, PHP, compiler flags,
|
|
and machine fixed. Alternate binary execution order, discard a warm-up pair,
|
|
and compare medians across multiple runs; exclude compilation time.
|
|
|
|
## Sample result
|
|
|
|
Linux ARM64 in Docker, PHP 8.5.10 ZTS, PHPX `6a68f38`, GCC `-O2`, no LTO;
|
|
baseline TypePHP `692841a6` versus direct known-array append lowering.
|
|
Nine measured runs per binary after one discarded pair, 100,000 rounds:
|
|
|
|
| Build | Median | Range |
|
|
| --- | ---: | ---: |
|
|
| Baseline | 980.88 ms | 970.47–1018.14 ms |
|
|
| Direct append | 563.60 ms | 558.99–582.68 ms |
|
|
|
|
Elapsed time decreased by 42.54% for this append-heavy microbenchmark; all
|
|
nine paired runs were faster. This is not an application-wide speedup or a
|
|
comparison against native PHP. Measurements include process startup and were
|
|
collected on a shared development machine. Raw times in seconds are in
|
|
`results-arm64.json`; its `count` field is the number of rounds.
|
|
|