Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf: improve performance of BufferQueue.pop #81

Merged
merged 1 commit into from
May 23, 2024
Merged

Conversation

kkebo
Copy link
Owner

@kkebo kkebo commented May 22, 2024

refs #61

===================================================                                                                                                                                        
Comparing results between 'main' and 'Current_run'                                                                                                                                         
===================================================                                                                                                                                        
                                                                                                                                                                                           
Host 'Brown-rhinoceros-beetle' with 8 'aarch64' processors with 7 GB memory, running:                                                                                                      
#1 SMP PREEMPT_DYNAMIC Fri May 17 17:22:13 UTC 2024                                                                                                                                        
                                                                                                                                                                                           
MyBenchmark                                                                                                                                                                                
============================================================================================================================                                                               
                                                                                                                                                                                           
----------------------------------------------------------------------------------------------------------------------------                                                               
lipsum metrics                                                                                                                                                                             
----------------------------------------------------------------------------------------------------------------------------                                                               
                                                                                                                                                                                           
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕                                                               
│         Time (wall clock) (μs) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │                                                               
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡                                                               
│                   main                   │      17 │      17 │      17 │      17 │      18 │      18 │      18 │     100 │                                                               
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                               
│               Current_run                │      14 │      14 │      14 │      14 │      15 │      15 │      15 │     100 │                                                               
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                               
│                    Δ                     │      -3 │      -3 │      -3 │      -3 │      -3 │      -3 │      -3 │       0 │                                                               
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                               
│              Improvement %               │      18 │      18 │      18 │      18 │      17 │      17 │      17 │       0 │                                                               
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛                                                               
                                                                                                                                                                                           
----------------------------------------------------------------------------------------------------------------------------                                                               
lipsum-zh metrics                                                                                                                                                                          
----------------------------------------------------------------------------------------------------------------------------                                                               
                                                                                                                                                                                           
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕                                                               
│         Time (wall clock) (ns) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │                                                               
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡                                                               
│                   main                   │    2080 │    2095 │    2161 │    2236 │    2245 │    2476 │    2589 │     100 │                                                               
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                               
│               Current_run                │    1559 │    1570 │    1576 │    1620 │    1678 │    1814 │    1818 │     100 │                                                               
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                               
│                    Δ                     │    -521 │    -525 │    -585 │    -616 │    -567 │    -662 │    -771 │       0 │                                                               
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                               
│              Improvement %               │      25 │      25 │      27 │      28 │      25 │      27 │      30 │       0 │                                                               
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛                                                               
                                                                                                                                                                                           
----------------------------------------------------------------------------------------------------------------------------                                                               
medium-fragment metrics                                                                                                                                                                    
----------------------------------------------------------------------------------------------------------------------------                                                               
                                                                                                                                                                                           
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕                                                               
│         Time (wall clock) (μs) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │                                                               
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡                                                               
│                   main                   │      49 │      49 │      49 │      49 │      50 │      53 │      53 │     100 │                                                               
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                               
│               Current_run                │      44 │      44 │      44 │      44 │      44 │      47 │      47 │     100 │                                                               
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                               
│                    Δ                     │      -5 │      -5 │      -5 │      -5 │      -6 │      -6 │      -6 │       0 │                                                               
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                                               
│              Improvement %               │      10 │      10 │      10 │      10 │      12 │      11 │      11 │       0 │                                                               
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛              

----------------------------------------------------------------------------------------------------------------------------                                                               
small-fragment metrics                                                                                                                                                                     
----------------------------------------------------------------------------------------------------------------------------                                                               
                                                                                                                                                                                           
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕                                                               
│         Time (wall clock) (ns) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │                                             
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│                   main                   │    5259 │    5280 │    5304 │    5329 │    5665 │    5713 │    5713 │     100 │                                             
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│               Current_run                │    4590 │    4604 │    4637 │    4755 │    4936 │    4952 │    5293 │     100 │                                             
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                             
│                    Δ                     │    -669 │    -676 │    -667 │    -574 │    -729 │    -761 │    -420 │       0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤                                             
│              Improvement %               │      13 │      13 │      13 │      11 │      13 │      13 │       7 │       0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛                                             

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

╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│         Time (wall clock) (μs) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│                   main                   │      22 │      22 │      22 │      22 │      22 │      24 │      24 │     100 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│               Current_run                │      19 │      19 │      19 │      19 │      20 │      21 │      21 │     100 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│                    Δ                     │      -3 │      -3 │      -3 │      -3 │      -2 │      -3 │      -3 │       0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│              Improvement %               │      14 │      14 │      14 │      14 │       9 │      12 │      12 │       0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛

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

╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│         Time (wall clock) (ns) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│                   main                   │     518 │     537 │     557 │     603 │     645 │     700 │     701 │     100 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│               Current_run                │     452 │     470 │     489 │     528 │     564 │     611 │     614 │     100 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│                    Δ                     │     -66 │     -67 │     -68 │     -75 │     -81 │     -89 │     -87 │       0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│              Improvement %               │      13 │      12 │      12 │      12 │      13 │      13 │      12 │       0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛

@kkebo kkebo self-assigned this May 22, 2024
@kkebo kkebo added the enhancement New feature or request label May 22, 2024

This comment has been minimized.

Copy link
Contributor

Code Metrics Report

main (546ae76) #81 (31fa480) +/-
Coverage 89.2% 89.2% -0.0%
Details
  |           | main (546ae76) | #81 (31fa480) |  +/-  |
  |-----------|----------------|---------------|-------|
- | Coverage  |          89.2% |         89.2% | -0.0% |
  |   Files   |              9 |             9 |     0 |
  |   Lines   |           1611 |          1608 |    -3 |
- |   Covered |           1437 |          1434 |    -3 |

Code coverage of files in pull request scope (100.0% → 100.0%)

Files Coverage +/-
Sources/Tokenizer/BufferQueue.swift 100.0% 0.0%

Reported by octocov

@kkebo kkebo merged commit fbbebaa into main May 23, 2024
2 checks passed
@kkebo kkebo deleted the improve-performance branch May 23, 2024 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant