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

Added `FastSelect` #327

Merged
merged 1 commit into from Dec 5, 2018

Conversation

@bvssvni
Copy link
Member

commented Dec 5, 2018

  • Optimised Select rule with table lookup
Added `FastSelect`
- Optimised Select rule with table lookup
@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Dec 5, 2018

Here are some benchmark improvements from Dyon (notice 15% improvement in n-body example):

Before:
test tests::bench_add           ... bench:  23,370,430 ns/iter (+/- 6,292,248)
test tests::bench_add_n         ... bench:   8,814,879 ns/iter (+/- 1,359,657)
test tests::bench_array         ... bench:  11,879,055 ns/iter (+/- 2,697,625)
test tests::bench_call          ... bench:  13,072,413 ns/iter (+/- 3,370,086)
test tests::bench_len           ... bench:   2,176,826 ns/iter (+/- 136,482)
test tests::bench_main          ... bench:     299,687 ns/iter (+/- 53,040)
test tests::bench_min           ... bench:  14,469,992 ns/iter (+/- 3,835,717)
test tests::bench_min_fn        ... bench:  43,401,323 ns/iter (+/- 6,710,536)
test tests::bench_n_body        ... bench:  75,065,452 ns/iter (+/- 12,708,316)
test tests::bench_object        ... bench:  21,639,170 ns/iter (+/- 7,189,541)
test tests::bench_primes        ... bench:  29,982,865 ns/iter (+/- 3,606,776)
test tests::bench_primes_trad   ... bench:  24,320,931 ns/iter (+/- 6,114,391)
test tests::bench_push_array    ... bench:  18,733,542 ns/iter (+/- 4,165,234)
test tests::bench_push_in       ... bench:  66,457,695 ns/iter (+/- 8,669,171)
test tests::bench_push_link     ... bench:  11,427,963 ns/iter (+/- 2,380,994)
test tests::bench_push_link_for ... bench:   5,901,677 ns/iter (+/- 480,103)
test tests::bench_push_link_go  ... bench:  11,798,052 ns/iter (+/- 1,891,728)
test tests::bench_push_str      ... bench:  43,954,933 ns/iter (+/- 7,969,792)
test tests::bench_sum           ... bench:   5,435,093 ns/iter (+/- 677,464)
test tests::bench_threads_go    ... bench:  25,486,326 ns/iter (+/- 4,504,612)
test tests::bench_threads_no_go ... bench:  20,342,591 ns/iter (+/- 3,716,807)

After:
test tests::bench_add           ... bench:  22,149,597 ns/iter (+/- 5,232,800)
test tests::bench_add_n         ... bench:   8,474,701 ns/iter (+/- 1,445,343)
test tests::bench_array         ... bench:  11,338,114 ns/iter (+/- 2,637,142)
test tests::bench_call          ... bench:  12,102,457 ns/iter (+/- 2,729,034)
test tests::bench_len           ... bench:   1,840,179 ns/iter (+/- 61,850)
test tests::bench_main          ... bench:     257,209 ns/iter (+/- 55,735)
test tests::bench_min           ... bench:  12,743,883 ns/iter (+/- 2,488,932)
test tests::bench_min_fn        ... bench:  39,756,667 ns/iter (+/- 8,162,767)
test tests::bench_n_body        ... bench:  65,152,575 ns/iter (+/- 12,773,469)
test tests::bench_object        ... bench:  19,818,535 ns/iter (+/- 2,339,217)
test tests::bench_primes        ... bench:  27,663,035 ns/iter (+/- 4,686,645)
test tests::bench_primes_trad   ... bench:  23,503,676 ns/iter (+/- 4,972,649)
test tests::bench_push_array    ... bench:  18,531,599 ns/iter (+/- 3,979,187)
test tests::bench_push_in       ... bench:  67,209,091 ns/iter (+/- 10,463,720)
test tests::bench_push_link     ... bench:  12,111,539 ns/iter (+/- 3,388,809)
test tests::bench_push_link_for ... bench:   6,296,659 ns/iter (+/- 2,329,146)
test tests::bench_push_link_go  ... bench:  10,752,265 ns/iter (+/- 1,748,103)
test tests::bench_push_str      ... bench:  43,215,650 ns/iter (+/- 8,152,176)
test tests::bench_sum           ... bench:   5,215,766 ns/iter (+/- 508,432)
test tests::bench_threads_go    ... bench:  21,946,820 ns/iter (+/- 3,955,733)
test tests::bench_threads_no_go ... bench:  19,895,186 ns/iter (+/- 4,087,344)
@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Dec 5, 2018

Some notes:

  • Made optimization enabled by default, because otherwise there is a lot of work to add a .optimize() call wherever Piston-Meta is used.
  • Added lazy static optimized bootstrap rules

@bvssvni bvssvni merged commit 3ac6a10 into PistonDevelopers:master Dec 5, 2018

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details

@bvssvni bvssvni deleted the bvssvni:opt branch Dec 5, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant
You can’t perform that action at this time.