kkebo / zyphy

Zyphy is (or will be) a fast web browser engine written in Swift.
MIT License
3 stars 1 forks source link

perf: enable experimental cross module optimization #65

Closed kkebo closed 2 months ago

kkebo commented 2 months ago

refs #61

This improves performance significantly. Some results are finally as fast as html5ever.

===================================================                                                                                                                                                                 
Comparing results between 'main' and 'Current_run'                                                                                                                                                                  
===================================================                                                                                                                                                                 

Host 'Brown-rhinoceros-beetle' with 8 'aarch64' processors with 7 GB memory, running:                                                                                                                               
#1 SMP PREEMPT_DYNAMIC Wed Apr 24 00:11:34 UTC 2024                                                                                                                                                                 

MyBenchmark                                                                                                                                                                                                         
============================================================================================================================                                                                                        

----------------------------------------------------------------------------------------------------------------------------                                                                                        
lipsum metrics                                                                                                                                                                                                      
---------------------------------------------------------------------------------------------------------------------------- 

╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕                                                                                        
│         Time (wall clock) (μs) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │                                                                                        
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡                                                                                        
│                   main                   │      92 │      92 │      92 │      93 │      93 │      99 │      99 │     100 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│               Current_run                │      53 │      53 │      53 │      53 │      53 │      56 │      56 │     100 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│                    Δ                     │     -39 │     -39 │     -39 │     -40 │     -40 │     -43 │     -43 │       0 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│              Improvement %               │      42 │      42 │      42 │      43 │      43 │      43 │      43 │       0 │                                                                                        
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛                                                                                        

----------------------------------------------------------------------------------------------------------------------------                                                                                        
lipsum-zh metrics                                                                                                                                                                                                   
----------------------------------------------------------------------------------------------------------------------------                                                                                        

╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕                                                                                        
│         Time (wall clock) (ns) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │                                                                                        
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡                                                                                        
│                   main                   │      11 │      11 │      11 │      12 │      12 │      12 │      12 │     100 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│               Current_run                │       7 │       7 │       7 │       7 │       7 │       7 │       7 │     100 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│                    Δ                     │      -4 │      -4 │      -4 │      -5 │      -5 │      -5 │      -5 │       0 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│              Improvement %               │      36 │      36 │      36 │      42 │      42 │      42 │      42 │       0 │                                                                                        
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛                                                                                        

----------------------------------------------------------------------------------------------------------------------------                                                                                        
medium-fragment metrics                                                                                                                                                                                             
----------------------------------------------------------------------------------------------------------------------------                                                                                        

╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕                                                                                        
│         Time (wall clock) (μs) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │                                                                                        
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡                                                                                        
│                   main                   │     130 │     130 │     130 │     130 │     132 │     139 │     141 │     100 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│               Current_run                │     122 │     122 │     122 │     123 │     124 │     130 │     130 │     100 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│                    Δ                     │      -8 │      -8 │      -8 │      -7 │      -8 │      -9 │     -11 │       0 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│              Improvement %               │       6 │       6 │       6 │       5 │       6 │       6 │       8 │       0 │                                                                                        
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛                                                                                        

----------------------------------------------------------------------------------------------------------------------------                                                                                        
small-fragment metrics                                                                                                                                                                                              
----------------------------------------------------------------------------------------------------------------------------                                                                                        

╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕                                                                                        
│         Time (wall clock) (μs) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │                                                                                        
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡                                                                                        
│                   main                   │      16 │      16 │      17 │      17 │      17 │      18 │      18 │     100 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│               Current_run                │      15 │      15 │      15 │      15 │      15 │      16 │      16 │     100 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│                    Δ                     │      -1 │      -1 │      -2 │      -2 │      -2 │      -2 │      -2 │       0 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│              Improvement %               │       6 │       6 │      12 │      12 │      12 │      11 │      11 │       0 │                                                                                        
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛                                                                                        

----------------------------------------------------------------------------------------------------------------------------                                                                                        
strong metrics                                                                                                                                                                                                      
----------------------------------------------------------------------------------------------------------------------------                                                                                        

╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕                                                                                        
│         Time (wall clock) (μs) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │                                                                                        
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│                   main                   │      39 │      39 │      39 │      39 │      40 │      42 │      42 │     100 │                                                                      
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│               Current_run                │      39 │      39 │      39 │      39 │      39 │      42 │      42 │     100 │                                                                      
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                      
│                    Δ                     │       0 │       0 │       0 │       0 │      -1 │       0 │       0 │       0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                      
│              Improvement %               │       0 │       0 │       0 │       0 │       2 │       0 │       0 │       0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛

----------------------------------------------------------------------------------------------------------------------------                                                                                        
tiny-fragment metrics                                                                                                                                                                                               
----------------------------------------------------------------------------------------------------------------------------                                                                                        

╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕                                                                                        
│         Time (wall clock) (ns) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │                                                                                        
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡                                                                                        
│                   main                   │     488 │     505 │     507 │     523 │     564 │    1072 │    1120 │     100 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│               Current_run                │     405 │     416 │     434 │     468 │     470 │     504 │     505 │     100 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│                    Δ                     │     -83 │     -89 │     -73 │     -55 │     -94 │    -568 │    -615 │       0 │                                                                                        
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                                                        
│              Improvement %               │      17 │      18 │      14 │      11 │      17 │      53 │      55 │       0 │                                                                                        
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
github-actions[bot] commented 2 months ago

Code Metrics Report

main (96de2de) #65 (c51f5dc) +/-
Coverage 88.7% 88.7% 0.0%
Details ``` diff | | main (96de2de) | #65 (c51f5dc) | +/- | |-----------|----------------|---------------|------| | Coverage | 88.7% | 88.7% | 0.0% | | Files | 7 | 7 | 0 | | Lines | 1521 | 1521 | 0 | | Covered | 1349 | 1349 | 0 | ```

Reported by octocov

github-actions[bot] commented 2 months ago

Code Metrics Report

main (96de2de) #65 (b6629ad) +/-
Coverage 88.7% 88.7% 0.0%
Details ``` diff | | main (96de2de) | #65 (b6629ad) | +/- | |-----------|----------------|---------------|------| | Coverage | 88.7% | 88.7% | 0.0% | | Files | 7 | 7 | 0 | | Lines | 1521 | 1521 | 0 | | Covered | 1349 | 1349 | 0 | ```

Reported by octocov