| 
									
										
										
										
											2019-03-25 09:15:16 -06:00
										 |  |  | #![feature(test)]
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern crate test;
 | 
					
						
							|  |  |  | use bincode::deserialize;
 | 
					
						
							|  |  |  | use solana_sdk::short_vec::ShortVec;
 | 
					
						
							|  |  |  | use test::Bencher;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Return a ShortVec with 127 bytes
 | 
					
						
							|  |  |  | fn create_encoded_short_vec() -> Vec<u8> {
 | 
					
						
							|  |  |  |     let mut bytes = vec![127];
 | 
					
						
							| 
									
										
										
										
											2020-06-09 01:38:14 +01:00
										 |  |  |     bytes.extend_from_slice(&[0u8; 127]);
 | 
					
						
							| 
									
										
										
										
											2019-03-25 09:15:16 -06:00
										 |  |  |     bytes
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Return a Vec with 127 bytes
 | 
					
						
							|  |  |  | fn create_encoded_vec() -> Vec<u8> {
 | 
					
						
							|  |  |  |     let mut bytes = vec![127, 0, 0, 0, 0, 0, 0, 0];
 | 
					
						
							| 
									
										
										
										
											2020-06-09 01:38:14 +01:00
										 |  |  |     bytes.extend_from_slice(&[0u8; 127]);
 | 
					
						
							| 
									
										
										
										
											2019-03-25 09:15:16 -06:00
										 |  |  |     bytes
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[bench]
 | 
					
						
							|  |  |  | fn bench_short_vec(b: &mut Bencher) {
 | 
					
						
							|  |  |  |     b.iter(|| {
 | 
					
						
							|  |  |  |         let bytes = test::black_box(create_encoded_short_vec());
 | 
					
						
							|  |  |  |         deserialize::<ShortVec<u8>>(&bytes).unwrap();
 | 
					
						
							|  |  |  |     });
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[bench]
 | 
					
						
							|  |  |  | fn bench_vec(b: &mut Bencher) {
 | 
					
						
							|  |  |  |     b.iter(|| {
 | 
					
						
							|  |  |  |         let bytes = test::black_box(create_encoded_vec());
 | 
					
						
							|  |  |  |         deserialize::<Vec<u8>>(&bytes).unwrap();
 | 
					
						
							|  |  |  |     });
 | 
					
						
							|  |  |  | }
 |