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 {
960960 test_v( Some ( 3 ) ) ;
961961 }
962962}
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