/benches/lib.rs

https://gitlab.com/Fraser999/DataName · Rust · 127 lines · 112 code · 15 blank · 0 comment · 0 complexity · 6e224c574fcfce6ccfd0c3573ba7556d MD5 · raw file

  1. #![forbid(bad_style, exceeding_bitshifts, mutable_transmutes, no_mangle_const_items,
  2. unknown_crate_types, warnings)]
  3. #![deny(deprecated, drop_with_repr_extern, improper_ctypes, missing_docs,
  4. non_shorthand_field_patterns, overflowing_literals, plugin_as_library,
  5. private_no_mangle_fns, private_no_mangle_statics, stable_features, unconditional_recursion,
  6. unknown_lints, unsafe_code, unused, unused_allocation, unused_attributes,
  7. unused_comparisons, unused_features, unused_parens, while_true)]
  8. #![warn(trivial_casts, trivial_numeric_casts, unused_extern_crates, unused_import_braces,
  9. unused_qualifications, unused_results)]
  10. #![allow(box_pointers, fat_ptr_transmutes, missing_copy_implementations,
  11. missing_debug_implementations, variant_size_differences)]
  12. #![cfg_attr(feature="clippy", feature(plugin))]
  13. #![cfg_attr(feature="clippy", plugin(clippy))]
  14. #![cfg_attr(feature="clippy", deny(clippy, clippy_pedantic))]
  15. #![feature(test)]
  16. extern crate data_name;
  17. #[macro_use]
  18. extern crate maidsafe_utilities;
  19. extern crate rand;
  20. extern crate test;
  21. use data_name::{ImmutableData, Lazy, Minimal, Safe};
  22. use maidsafe_utilities::serialisation;
  23. use test::Bencher;
  24. #[bench]
  25. fn existing_name(bencher: &mut Bencher) {
  26. let data = rand::random::<ImmutableData>();
  27. bencher.iter(|| {
  28. let _ = data.name();
  29. });
  30. }
  31. #[bench]
  32. fn lazy_name(bencher: &mut Bencher) {
  33. let data = rand::random::<Lazy>();
  34. bencher.iter(|| {
  35. let _ = data.name();
  36. });
  37. }
  38. #[bench]
  39. fn minimal_name(bencher: &mut Bencher) {
  40. let data = rand::random::<Minimal>();
  41. bencher.iter(|| {
  42. let _ = data.name();
  43. });
  44. }
  45. #[bench]
  46. fn safe_name(bencher: &mut Bencher) {
  47. let data = rand::random::<Safe>();
  48. bencher.iter(|| {
  49. let _ = data.name();
  50. });
  51. }
  52. #[bench]
  53. fn existing_serialisation(bencher: &mut Bencher) {
  54. let data = rand::random::<ImmutableData>();
  55. bencher.iter(|| {
  56. let _ = unwrap_result!(serialisation::serialise(&data));
  57. });
  58. }
  59. #[bench]
  60. fn lazy_serialisation(bencher: &mut Bencher) {
  61. let data = rand::random::<Lazy>();
  62. bencher.iter(|| {
  63. let _ = unwrap_result!(serialisation::serialise(&data));
  64. });
  65. }
  66. #[bench]
  67. fn minimal_serialisation(bencher: &mut Bencher) {
  68. let data = rand::random::<Minimal>();
  69. bencher.iter(|| {
  70. let _ = unwrap_result!(serialisation::serialise(&data));
  71. });
  72. }
  73. #[bench]
  74. fn safe_serialisation(bencher: &mut Bencher) {
  75. let data = rand::random::<Safe>();
  76. bencher.iter(|| {
  77. let _ = unwrap_result!(data.serialise());
  78. });
  79. }
  80. #[bench]
  81. fn existing_deserialisation(bencher: &mut Bencher) {
  82. let data = rand::random::<ImmutableData>();
  83. let serialised_data = unwrap_result!(serialisation::serialise(&data));
  84. bencher.iter(|| {
  85. let _ = unwrap_result!(serialisation::deserialise::<ImmutableData>(&serialised_data));
  86. });
  87. }
  88. #[bench]
  89. fn lazy_deserialisation(bencher: &mut Bencher) {
  90. let data = rand::random::<Lazy>();
  91. let serialised_data = unwrap_result!(serialisation::serialise(&data));
  92. bencher.iter(|| {
  93. let _ = unwrap_result!(serialisation::deserialise::<Lazy>(&serialised_data));
  94. });
  95. }
  96. #[bench]
  97. fn minimal_deserialisation(bencher: &mut Bencher) {
  98. let data = rand::random::<Minimal>();
  99. let serialised_data = unwrap_result!(serialisation::serialise(&data));
  100. bencher.iter(|| {
  101. let _ = unwrap_result!(serialisation::deserialise::<Minimal>(&serialised_data));
  102. });
  103. }
  104. #[bench]
  105. fn safe_deserialisation(bencher: &mut Bencher) {
  106. let data = rand::random::<Safe>();
  107. let name = data.name();
  108. let serialised_data = unwrap_result!(data.serialise());
  109. bencher.iter(|| {
  110. let _ = unwrap_result!(Safe::deserialise(&serialised_data, name));
  111. });
  112. }