File tree Expand file tree Collapse file tree 6 files changed +59
-59
lines changed Expand file tree Collapse file tree 6 files changed +59
-59
lines changed Original file line number Diff line number Diff line change @@ -16,9 +16,11 @@ readme = "../README.md"
1616event-listener = " 2.0.0"
1717
1818[dev-dependencies ]
19+ async-executor = " 1.3.0"
1920async-io = " 1.1.2"
20- async-std = " 1.6.2"
2121futures = " 0.3.5"
2222futures-intrusive = " 0.3.1"
2323futures-lite = " 1.0.0"
24+ num_cpus = " 1.13.0"
25+ once_cell = " 1.4.1"
2426tokio = { version = " 0.2.21" , features = [" sync" , " parking_lot" ] }
Original file line number Diff line number Diff line change 33extern crate test;
44
55use std:: sync:: Arc ;
6+ use std:: thread;
67
8+ use async_executor:: Executor ;
79use async_mutex:: Mutex ;
8- use async_std:: task;
10+ use futures_lite:: future;
11+ use once_cell:: sync:: Lazy ;
912use test:: Bencher ;
1013
14+ static EX : Lazy < Executor > = Lazy :: new ( || {
15+ for _ in 0 ..num_cpus:: get ( ) {
16+ thread:: spawn ( || future:: block_on ( EX . run ( future:: pending :: < ( ) > ( ) ) ) ) ;
17+ }
18+ Executor :: new ( )
19+ } ) ;
20+
1121#[ bench]
1222fn create ( b : & mut Bencher ) {
1323 b. iter ( || Mutex :: new ( ( ) ) ) ;
1424}
1525
1626#[ bench]
1727fn contention ( b : & mut Bencher ) {
18- b. iter ( || task :: block_on ( run ( 10 , 1000 ) ) ) ;
28+ b. iter ( || future :: block_on ( run ( 10 , 1000 ) ) ) ;
1929}
2030
2131#[ bench]
2232fn no_contention ( b : & mut Bencher ) {
23- b. iter ( || task :: block_on ( run ( 1 , 10000 ) ) ) ;
33+ b. iter ( || future :: block_on ( run ( 1 , 10000 ) ) ) ;
2434}
2535
2636async fn run ( task : usize , iter : usize ) {
@@ -29,7 +39,7 @@ async fn run(task: usize, iter: usize) {
2939
3040 for _ in 0 ..task {
3141 let m = m. clone ( ) ;
32- tasks. push ( task :: spawn ( async move {
42+ tasks. push ( EX . spawn ( async move {
3343 for _ in 0 ..iter {
3444 let _ = m. lock ( ) . await ;
3545 }
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 33extern crate test;
44
55use std:: sync:: Arc ;
6+ use std:: thread;
67
7- use async_std :: task ;
8+ use async_executor :: Executor ;
89use futures_intrusive:: sync:: Mutex ;
10+ use futures_lite:: future;
11+ use once_cell:: sync:: Lazy ;
912use test:: Bencher ;
1013
14+ static EX : Lazy < Executor > = Lazy :: new ( || {
15+ for _ in 0 ..num_cpus:: get ( ) {
16+ thread:: spawn ( || future:: block_on ( EX . run ( future:: pending :: < ( ) > ( ) ) ) ) ;
17+ }
18+ Executor :: new ( )
19+ } ) ;
20+
1121#[ bench]
1222fn create ( b : & mut Bencher ) {
1323 b. iter ( || Mutex :: new ( ( ) , true ) ) ;
1424}
1525
1626#[ bench]
1727fn contention ( b : & mut Bencher ) {
18- b. iter ( || task :: block_on ( run ( 10 , 1000 ) ) ) ;
28+ b. iter ( || future :: block_on ( run ( 10 , 1000 ) ) ) ;
1929}
2030
2131#[ bench]
2232fn no_contention ( b : & mut Bencher ) {
23- b. iter ( || task :: block_on ( run ( 1 , 10000 ) ) ) ;
33+ b. iter ( || future :: block_on ( run ( 1 , 10000 ) ) ) ;
2434}
2535
2636async fn run ( task : usize , iter : usize ) {
@@ -29,7 +39,7 @@ async fn run(task: usize, iter: usize) {
2939
3040 for _ in 0 ..task {
3141 let m = m. clone ( ) ;
32- tasks. push ( task :: spawn ( async move {
42+ tasks. push ( EX . spawn ( async move {
3343 for _ in 0 ..iter {
3444 let _ = m. lock ( ) . await ;
3545 }
Original file line number Diff line number Diff line change 33extern crate test;
44
55use std:: sync:: Arc ;
6+ use std:: thread;
67
7- use async_std :: task ;
8+ use async_executor :: Executor ;
89use futures:: lock:: Mutex ;
10+ use futures_lite:: future;
11+ use once_cell:: sync:: Lazy ;
912use test:: Bencher ;
1013
14+ static EX : Lazy < Executor > = Lazy :: new ( || {
15+ for _ in 0 ..num_cpus:: get ( ) {
16+ thread:: spawn ( || future:: block_on ( EX . run ( future:: pending :: < ( ) > ( ) ) ) ) ;
17+ }
18+ Executor :: new ( )
19+ } ) ;
20+
1121#[ bench]
1222fn create ( b : & mut Bencher ) {
1323 b. iter ( || Mutex :: new ( ( ) ) ) ;
1424}
1525
1626#[ bench]
1727fn contention ( b : & mut Bencher ) {
18- b. iter ( || task :: block_on ( run ( 10 , 1000 ) ) ) ;
28+ b. iter ( || future :: block_on ( run ( 10 , 1000 ) ) ) ;
1929}
2030
2131#[ bench]
2232fn no_contention ( b : & mut Bencher ) {
23- b. iter ( || task :: block_on ( run ( 1 , 10000 ) ) ) ;
33+ b. iter ( || future :: block_on ( run ( 1 , 10000 ) ) ) ;
2434}
2535
2636async fn run ( task : usize , iter : usize ) {
@@ -29,7 +39,7 @@ async fn run(task: usize, iter: usize) {
2939
3040 for _ in 0 ..task {
3141 let m = m. clone ( ) ;
32- tasks. push ( task :: spawn ( async move {
42+ tasks. push ( EX . spawn ( async move {
3343 for _ in 0 ..iter {
3444 let _ = m. lock ( ) . await ;
3545 }
Original file line number Diff line number Diff line change 33extern crate test;
44
55use std:: sync:: Arc ;
6+ use std:: thread;
67
7- use async_std:: task;
8+ use async_executor:: Executor ;
9+ use futures_lite:: future;
10+ use once_cell:: sync:: Lazy ;
811use test:: Bencher ;
912use tokio:: sync:: Mutex ;
1013
14+ static EX : Lazy < Executor > = Lazy :: new ( || {
15+ for _ in 0 ..num_cpus:: get ( ) {
16+ thread:: spawn ( || future:: block_on ( EX . run ( future:: pending :: < ( ) > ( ) ) ) ) ;
17+ }
18+ Executor :: new ( )
19+ } ) ;
20+
1121#[ bench]
1222fn create ( b : & mut Bencher ) {
1323 b. iter ( || Mutex :: new ( ( ) ) ) ;
1424}
1525
1626#[ bench]
1727fn contention ( b : & mut Bencher ) {
18- b. iter ( || task :: block_on ( run ( 10 , 1000 ) ) ) ;
28+ b. iter ( || future :: block_on ( run ( 10 , 1000 ) ) ) ;
1929}
2030
2131#[ bench]
2232fn no_contention ( b : & mut Bencher ) {
23- b. iter ( || task :: block_on ( run ( 1 , 10000 ) ) ) ;
33+ b. iter ( || future :: block_on ( run ( 1 , 10000 ) ) ) ;
2434}
2535
2636async fn run ( task : usize , iter : usize ) {
@@ -29,7 +39,7 @@ async fn run(task: usize, iter: usize) {
2939
3040 for _ in 0 ..task {
3141 let m = m. clone ( ) ;
32- tasks. push ( task :: spawn ( async move {
42+ tasks. push ( EX . spawn ( async move {
3343 for _ in 0 ..iter {
3444 let _ = m. lock ( ) . await ;
3545 }
You can’t perform that action at this time.
0 commit comments