File tree Expand file tree Collapse file tree 1 file changed +84
-0
lines changed Expand file tree Collapse file tree 1 file changed +84
-0
lines changed Original file line number Diff line number Diff line change @@ -960,3 +960,87 @@ mod tests {
960
960
test_v( Some ( 3 ) ) ;
961
961
}
962
962
}
963
+
964
+ #[ cfg( test) ]
965
+ mod bench {
966
+ use ebml:: reader;
967
+ use test: : BenchHarness ;
968
+
969
+ #[ bench]
970
+ pub fn vuint_at_A_aligned( bh: & mut BenchHarness ) {
971
+ use std:: vec;
972
+ let data = vec:: from_fn( 4 * 100 , |i| {
973
+ match ( i % 2 ) {
974
+ 0 => 0x80u8 ,
975
+ _ => i as u8,
976
+ }
977
+ } ) ;
978
+ let mut sum = 0 u;
979
+ bh. iter( || {
980
+ let mut i = 0 ;
981
+ while ( i < data . len( ) ) {
982
+ sum += reader:: vuint_at ( data, i) . val ;
983
+ i += 4 ;
984
+ }
985
+ } ) ;
986
+ }
987
+
988
+ #[ bench ]
989
+ pub fn vuint_at_A_unaligned ( bh : & mut BenchHarness ) {
990
+ use std:: vec;
991
+ let data = vec:: from_fn ( 4 * 100 +1 , |i| {
992
+ match ( i % 2 ) {
993
+ 1 => 0x80u8 ,
994
+ _ => i as u8
995
+ }
996
+ } ) ;
997
+ let mut sum = 0 u;
998
+ bh. iter ( || {
999
+ let mut i = 1 ;
1000
+ while ( i < data. len ( ) ) {
1001
+ sum += reader:: vuint_at ( data, i) . val ;
1002
+ i += 4 ;
1003
+ }
1004
+ } ) ;
1005
+ }
1006
+
1007
+ #[ bench]
1008
+ pub fn vuint_at_D_aligned ( bh : & mut BenchHarness ) {
1009
+ use std:: vec;
1010
+ let data = vec:: from_fn ( 4 * 100 , |i| {
1011
+ match ( i % 4 ) {
1012
+ 0 => 0x10u8 ,
1013
+ 3 => i as u8 ,
1014
+ _ => 0u8
1015
+ }
1016
+ } ) ;
1017
+ let mut sum = 0 u;
1018
+ bh. iter ( || {
1019
+ let mut i = 0 ;
1020
+ while ( i < data. len ( ) ) {
1021
+ sum += reader:: vuint_at ( data, i) . val ;
1022
+ i += 4 ;
1023
+ }
1024
+ } ) ;
1025
+ }
1026
+
1027
+ #[ bench]
1028
+ pub fn vuint_at_D_unaligned ( bh : & mut BenchHarness ) {
1029
+ use std:: vec;
1030
+ let data = vec:: from_fn ( 4 * 100 +1 , |i| {
1031
+ match ( i % 4 ) {
1032
+ 1 => 0x10u8 ,
1033
+ 0 => i as u8 ,
1034
+ _ => 0u8
1035
+ }
1036
+ } ) ;
1037
+ let mut sum = 0 u;
1038
+ bh. iter ( || {
1039
+ let mut i = 1 ;
1040
+ while ( i < data. len ( ) ) {
1041
+ sum += reader:: vuint_at ( data, i) . val ;
1042
+ i += 4 ;
1043
+ }
1044
+ } ) ;
1045
+ }
1046
+ }
You can’t perform that action at this time.
0 commit comments