Runtime interpretation
Source executed by each interpreter
3.01×LaiRu geometric-mean throughput
- Workloads
- 13 / 13
- Exact checksums
- 13 / 13
Measured compatibility
The modern Rocky Linux Original Lasso 8.6.3 comparison and the retained PHP 8.4 reference. Each performance section states its own machine specification; results are not compared across machines.
Rocky Linux comparison
Rocky Linux 8.10, 2 vCPUs on Intel Xeon L5420 2.50 GHz, 2 GiB maximum RAM with a 1 GiB floor, and a 20 GiB disk. The recovered vendor package is compatibility-adapted to this newer operating system. Both runtimes use isolated databases and persistent workers.
Runtime interpretation
3.01×LaiRu geometric-mean throughput
Resident LassoApp
3.23×lower LaiRu warm median latency
Runtime interpreter
Both engines execute the same 13-case fixture with identical iteration counts, one warmup, and seven measured samples. Timers are inside the Lasso workload. The vendor runtime was warmed, its request logging was excluded, and the long operation request bypassed the normal nginx timeout through loopback Apache.
| Workload | Operation | Iterations | Original 8.6.3 median | LaiRu 8.6.3 median | LaiRu / Original | Checksum |
|---|---|---|---|---|---|---|
loop_controlControl flow | Counted loop and assignment | 300,000 | 304.000 ms | 162.000 ms | 1.88× | Match |
integer_arithmeticArithmetic | Integer multiply, add, and modulo | 200,000 | 513.000 ms | 173.000 ms | 2.97× | Match |
branch_controlControl flow | Modulo branch and conditional increment | 200,000 | 270.000 ms | 115.000 ms | 2.35× | Match |
string_searchStrings | Find a substring in fixed ASCII text | 80,000 | 326.000 ms | 167.000 ms | 1.95× | Match |
string_replaceStrings | Two fixed substring replacements | 30,000 | 3,048.000 ms | 118.000 ms | 25.83× | Match |
array_buildCollections | Append sequential integers to an array | 10,000 | 15.000 ms | 9.000 ms | 1.67× | Match |
array_lookupCollections | Indexed reads from a 100-item array | 100,000 | 771.000 ms | 1,327.000 ms | 0.58× | Match |
map_lookupCollections | Repeated lookup in a four-entry map | 100,000 | 406.000 ms | 184.000 ms | 2.21× | Match |
custom_tag_callDispatch | Two-argument user tag invocation | 100,000 | 911.000 ms | 334.000 ms | 2.73× | Match |
html_encodeWeb text | HTML-encode a fixed fragment | 60,000 | 443.000 ms | 96.000 ms | 4.61× | Match |
md5_digestCrypto | MD5 digest of fixed ASCII text | 100,000 | 1,775.000 ms | 104.000 ms | 17.07× | Match |
regex_replaceRegex | Replace two numeric runs | 10,000 | 330.000 ms | 176.000 ms | 1.88× | Match |
template_renderRendering | Build a ten-row HTML list fragment | 5,000 | 514.000 ms | 172.000 ms | 2.99× | Match |
LaiRu measured 3.01× Original Lasso's geometric-mean throughput across 13 checksum-matched cases. Values below 1× mean Original was faster. Raw samples and fixture hashes are retained in the report.
Resident LassoApp
The same default.lasso is copied to both runtime build areas. Original Lasso and LaiRu each build their own Benchmark.LassoApp using native LassoApp_Create. Both workers are restarted, one cold load is recorded, and then 50 warmups precede 5 interleaved rounds of 500 requests through nginx. Cold load includes any lazy site-worker initialization after restart; the warm statistics are the steady-state comparison. Both return the same 1,010-byte body and SHA-256 digest. The checked-in source digest is e38fee8c0464aaa913c321c75ad47d33a0837b5dfc48e781df7d90a5427913d5. Original Lasso produced a 696-byte archive and LaiRu produced a 579-byte archive; their formats are implementation-specific and are not expected to be byte-identical.
Result: Original Lasso's median latency was 3.23× LaiRu's; LaiRu delivered 3.22× Original's sequential throughput on this fixture. This is a single-client compatibility comparison, not a concurrent load limit.
PHP 8.4 comparison
Debian 13, one pinned logical CPU on Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz. This retained comparison is intentionally unchanged: it is a performance reference using equivalent implementations, not a Lasso feature-parity claim.
result checksums matched
aggregate throughput over the retained pre-optimization baseline
LaiRu Legacy warm FastCGI request
LaiRu latency relative to PHP-FPM 8.4
Language operations
PHP 8.4.21 and LaiRu Legacy execute equivalent implementations with identical iteration counts and checksums. One warmup and seven samples are run. Timers exclude process startup, parsing, compilation, and report serialization.
| Workload | Operation | Iterations | PHP 8.4 median | LaiRu 8.6.3 median | LaiRu throughput | Latency gap |
|---|---|---|---|---|---|---|
loop_controlControl flow | Counted loop and assignment | 300,000 | 1.119 ms | 51 ms | 0.0219× | 45.57× |
integer_arithmeticArithmetic | Integer multiply, add, and modulo | 200,000 | 5.194 ms | 64 ms | 0.0812× | 12.32× |
branch_controlControl flow | Modulo branch and conditional increment | 200,000 | 3.133 ms | 46 ms | 0.0681× | 14.68× |
string_searchStrings | Find a substring in fixed ASCII text | 80,000 | 0.298 ms | 62 ms | 0.0048× | 207.94× |
string_replaceStrings | Two fixed substring replacements | 30,000 | 0.112 ms | 44 ms | 0.0025× | 393.12× |
array_buildCollections | Append sequential integers to an array | 10,000 | 0.100 ms | 4 ms | 0.0250× | 39.98× |
array_lookupCollections | Indexed reads from a 100-item array | 100,000 | 1.979 ms | 126 ms | 0.0157× | 63.67× |
map_lookupCollections | Repeated lookup in a four-entry map | 100,000 | 0.373 ms | 88 ms | 0.0042× | 236.17× |
custom_tag_callDispatch | Two-argument user function/tag invocation | 100,000 | 3.092 ms | 93 ms | 0.0332× | 30.08× |
html_encodeWeb text | HTML-encode a fixed fragment | 60,000 | 15.432 ms | 33 ms | 0.4676× | 2.14× |
md5_digestCrypto | MD5 digest of fixed ASCII text | 100,000 | 15.094 ms | 41 ms | 0.3681× | 2.72× |
regex_replaceRegex | Replace two numeric runs | 10,000 | 1.640 ms | 77 ms | 0.0213× | 46.96× |
template_renderRendering | Build a ten-row HTML list fragment | 5,000 | 3.557 ms | 85 ms | 0.0418× | 23.90× |
Geometric-mean LaiRu throughput is 0.029460× PHP, or a 33.94× latency gap. The per-operation table is deliberately harsh on interpreter dispatch; the complete warm application path below is the production-shaped comparison.
Persistent application
One LaiRu worker and one static PHP-FPM 8.4 child remain alive for a cold request, 50 warmups, then 5 interleaved rounds of 500 requests. Both render the same 992-byte body and digest.
Result: LaiRu delivers 0.5378× PHP-FPM throughput on this fixture, corresponding to 1.86× PHP latency.
Extended feature parity
The performance fixtures answer a narrow speed question. The extended suite sends 1,572 independent feature pages to Original Lasso and LaiRu on Rocky Linux, then checks the same LaiRu observations against Debian. Status, selected headers, response size, and response digest are compared.
41 deviations · 208 environment · 15 diagnostic · 22 unavailable · 0 request failures
0 platform deviations · 62 configured environment · 0 request failures
The full server-rendered page contains every Rocky Original comparison, the completed platform-independent resolution status, and the complete LaiRu Rocky-to-Debian parity result. No client-side application is required.
Read the result honestly
The operation tables isolate interpreter costs. The application tests include the warm web request path. The parity suite evaluates observable language compatibility rather than speed.
All figures are host-specific regression evidence, not universal capacity promises. Fixture hashes and raw samples are retained with the project.
Read the optimization stage