projectfluent / fluent-rs

Rust implementation of Project Fluent
https://projectfluent.org
Apache License 2.0
1.08k stars 97 forks source link

0.13 release #193

Closed zbraniecki closed 4 years ago

zbraniecki commented 4 years ago

Over last months we got a lot of in field experience working with fluent-rs.

In particular, I believe we have a chance to improve the ergonomics of using Fluent in Rust by focusing on three areas for the upcoming release:

I have WIP for all three and will try to tackle that over th next week.

I'm going to dupe a number of issues that I believe will be addressed by this rework here.

If you think that a) this is not the right direction or b) this will not solve your issue, please comment below.

zbraniecki commented 4 years ago
zbraniecki commented 4 years ago

The results of that are pretty promising.

Perf improvement on Syntax:

Gnuplot not found, disabling plotting
parse/"simple"          time:   [37.709 us 37.886 us 38.087 us]
                        change: [-6.2074% -5.4419% -4.7402%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild
parse/"preferences"     time:   [410.86 us 412.51 us 414.55 us]
                        change: [-13.267% -12.666% -12.066%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  5 (5.00%) high mild
  1 (1.00%) high severe
parse/"menubar"         time:   [112.84 us 113.21 us 113.59 us]
                        change: [-10.953% -10.215% -9.5050%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  3 (3.00%) high mild
  1 (1.00%) high severe

unicode                 time:   [4.8583 us 4.8818 us 4.9064 us]
                        change: [-35.027% -34.582% -34.115%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  3 (3.00%) low mild
  4 (4.00%) high mild
  1 (1.00%) high severe

unicode_to_string       time:   [7.6618 us 7.6894 us 7.7208 us]
Found 7 outliers among 100 measurements (7.00%)
  2 (2.00%) low mild
  4 (4.00%) high mild
  1 (1.00%) high severe

parse_ctx/"browser"     time:   [448.65 us 450.01 us 451.47 us]
                        change: [-12.685% -11.944% -11.253%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  2 (2.00%) high mild
  2 (2.00%) high severe
Benchmarking parse_ctx/"preferences": Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 5.3s or reduce sample count to 60
parse_ctx/"preferences" time:   [1.0266 ms 1.0297 ms 1.0330 ms]
                        change: [-13.678% -12.872% -12.036%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) high mild
  2 (2.00%) high severe

Perf improvement on resolver:

Gnuplot not found, disabling plotting
resolve/simple          time:   [4.8725 us 4.8871 us 4.9031 us]
                        change: [-15.371% -14.778% -14.160%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) low mild
  3 (3.00%) high mild
  2 (2.00%) high severe
resolve/unescape        time:   [812.88 ns 816.23 ns 820.00 ns]
                        change: [-10.326% -9.7253% -9.0869%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe
resolve/preferences     time:   [56.468 us 56.731 us 57.013 us]
                        change: [-47.502% -43.542% -40.197%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
  2 (2.00%) high mild
  1 (1.00%) high severe
resolve/menubar         time:   [16.589 us 16.653 us 16.720 us]
                        change: [-10.955% -9.8245% -8.6365%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  1 (1.00%) low mild
  3 (3.00%) high mild
  5 (5.00%) high severe
zbraniecki commented 4 years ago

All 4 got merged!

zbraniecki commented 4 years ago

the basics are in!