|
| 1 | +use std::str; |
| 2 | +use test::{black_box, Bencher}; |
| 3 | + |
| 4 | +const LOREM_SHORT: &str = "Lorem ipsum"; |
| 5 | + |
| 6 | +const LOREM: &str = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. |
| 7 | +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. |
| 8 | +Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. |
| 9 | +Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. |
| 10 | +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis. |
| 11 | +At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur"; |
| 12 | + |
| 13 | +const EMOJI: &str = "๐๐๐๐๐๐
๐คฃ๐๐๐๐๐๐๐ฅฐ๐๐คฉ๐๐โบ๐๐๐ฅฒ๐๐๐๐คช๐๐ค๐ค๐คญ๐คซ๐ค๐ค๐คจ๐๐๐ถ๐ถโ๐ซ๏ธ๐๐๐๐ฌ๐ฎโ๐จ๐คฅ๐๐๐ช๐คค๐ด๐ท๐ค๐ค๐คข๐คฎ๐คง๐ฅต๐ฅถ๐ฅด๐ต๐ตโ๐ซ๐คฏ๐ค ๐ฅณ๐ฅธ๐๐ค๐ง๐๐๐โน๐ฎ๐ฏ๐ฒ๐ณ๐ฅบ๐ฆ๐ง๐จ๐ฐ๐ฅ๐ข๐ญ๐ฑ๐๐ฃ๐๐๐ฉ๐ซ๐ฅฑ๐ค๐ก๐ ๐คฌ๐๐ฟ๐โ ๐ฉ๐คก๐น๐บ๐ป๐ฝ๐พ๐ค๐บ๐ธ๐น๐ป๐ผ๐ฝ๐๐ฟ๐พ๐๐๐๐๐๐๐๐๐๐๐๐๐โฃ๐โค๏ธโ๐ฅโค๏ธโ๐ฉนโค๐งก๐๐๐๐๐ค๐ค๐ค๐ฏ๐ข๐ฅ๐ซ๐ฆ๐จ๐ณ๐ฃ๐ฌ๐๏ธโ๐จ๏ธ๐จ๐ฏ๐ญ๐ค๐๐ค๐โ๐๐๐ค๐คโ๐ค๐ค๐ค๐ค๐๐๐๐๐โ๐๐โ๐๐ค๐ค๐๐๐๐คฒ๐ค๐โ๐
๐คณ๐ช๐ฆพ๐ฆฟ๐ฆต๐ฆถ๐๐ฆป๐๐ง ๐ซ๐ซ๐ฆท๐ฆด๐๐๐
๐๐ถ๐ง๐ฆ๐ง๐ง๐ฑ๐จ๐ง๐งโโ๏ธ๐งโโ๏ธ๐จโ๐ฆฐ๐จโ๐ฆฑ๐จโ๐ฆณ๐จโ๐ฆฒ๐ฉ๐ฉโ๐ฆฐ๐งโ๐ฆฐ๐ฉโ๐ฆฑ๐งโ๐ฆฑ๐ฉโ๐ฆณ๐งโ๐ฆณ๐ฉโ๐ฆฒ๐งโ๐ฆฒ๐ฑโโ๏ธ๐ฑโโ๏ธ๐ง๐ด๐ต๐๐โโ๏ธ๐โโ๏ธ๐๐โโ๏ธ๐โโ๏ธ๐
๐
โโ๏ธ๐
โโ๏ธ๐๐โโ๏ธ๐โโ๏ธ๐๐โโ๏ธ๐โโ๏ธ๐๐โโ๏ธ๐โโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐๐โโ๏ธ๐โโ๏ธ๐คฆ๐คฆโโ๏ธ๐คฆโโ๏ธ๐คท๐คทโโ๏ธ๐คทโโ๏ธ๐งโโ๏ธ๐จโโ๏ธ๐ฉโโ๏ธ๐งโ๐๐จโ๐๐ฉโ๐๐งโ๐ซ๐จโ๐ซ๐ฉโ๐ซ๐งโโ๏ธ๐จโโ๏ธ๐ฉโโ๏ธ๐งโ๐พ๐จโ๐พ๐ฉโ๐พ๐งโ๐ณ๐จโ๐ณ๐ฉโ๐ณ๐งโ๐ง๐จโ๐ง๐ฉโ๐ง๐งโ๐ญ๐จโ๐ญ๐ฉโ๐ญ๐งโ๐ผ๐จโ๐ผ๐ฉโ๐ผ๐งโ๐ฌ๐จโ๐ฌ๐ฉโ๐ฌ๐งโ๐ป๐จโ๐ป๐ฉโ๐ป๐งโ๐ค๐จโ๐ค๐ฉโ๐ค๐งโ๐จ๐จโ๐จ๐ฉโ๐จ๐งโโ๏ธ๐จโโ๏ธ๐ฉโโ๏ธ๐งโ๐๐จโ๐๐ฉโ๐๐งโ๐๐จโ๐๐ฉโ๐๐ฎ๐ฎโโ๏ธ๐ฎโโ๏ธ๐ต๐ต๏ธโโ๏ธ๐ต๏ธโโ๏ธ๐๐โโ๏ธ๐โโ๏ธ๐ฅท๐ท๐ทโโ๏ธ๐ทโโ๏ธ๐คด๐ธ๐ณ๐ณโโ๏ธ๐ณโโ๏ธ๐ฒ๐ง๐คต๐คตโโ๏ธ๐คตโโ๏ธ๐ฐ๐ฐโโ๏ธ๐ฐโโ๏ธ๐คฐ๐คฑ๐ฉโ๐ผ๐จโ๐ผ๐งโ๐ผ๐ผ๐
๐คถ๐งโ๐๐ฆธ๐ฆธโโ๏ธ๐ฆธโโ๏ธ๐ฆน๐ฆนโโ๏ธ๐ฆนโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐๐โโ๏ธ๐โโ๏ธ๐๐โโ๏ธ๐โโ๏ธ๐ถ๐ถโโ๏ธ๐ถโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐งโ๐ฆฏ๐จโ๐ฆฏ๐ฉโ๐ฆฏ๐งโ๐ฆผ๐จโ๐ฆผ๐ฉโ๐ฆผ๐งโ๐ฆฝ๐จโ๐ฆฝ๐ฉโ๐ฆฝ๐๐โโ๏ธ๐โโ๏ธ๐๐บ๐ด๐ฏ๐ฏโโ๏ธ๐ฏโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐คบ๐โท๐๐๐๏ธโโ๏ธ๐๏ธโโ๏ธ๐๐โโ๏ธ๐โโ๏ธ๐ฃ๐ฃโโ๏ธ๐ฃโโ๏ธ๐๐โโ๏ธ๐โโ๏ธโนโน๏ธโโ๏ธโน๏ธโโ๏ธ๐๐๏ธโโ๏ธ๐๏ธโโ๏ธ๐ด๐ดโโ๏ธ๐ดโโ๏ธ๐ต๐ตโโ๏ธ๐ตโโ๏ธ๐คธ๐คธโโ๏ธ๐คธโโ๏ธ๐คผ๐คผโโ๏ธ๐คผโโ๏ธ๐คฝ๐คฝโโ๏ธ๐คฝโโ๏ธ๐คพ๐คพโโ๏ธ๐คพโโ๏ธ๐คน๐คนโโ๏ธ๐คนโโ๏ธ๐ง๐งโโ๏ธ๐งโโ๏ธ๐๐๐งโ๐คโ๐ง๐ญ๐ซ๐ฌ๐๐ฉโโค๏ธโ๐โ๐จ๐จโโค๏ธโ๐โ๐จ๐ฉโโค๏ธโ๐โ๐ฉ๐๐ฉโโค๏ธโ๐จ๐จโโค๏ธโ๐จ๐ฉโโค๏ธโ๐ฉ๐ช๐จโ๐ฉโ๐ฆ๐จโ๐ฉโ๐ง๐จโ๐ฉโ๐งโ๐ฆ๐จโ๐ฉโ๐ฆโ๐ฆ๐จโ๐ฉโ๐งโ๐ง๐จโ๐จโ๐ฆ๐จโ๐จโ๐ง๐จโ๐จโ๐งโ๐ฆ๐จโ๐จโ๐ฆโ๐ฆ๐จโ๐จโ๐งโ๐ง๐ฉโ๐ฉโ๐ฆ๐ฉโ๐ฉโ๐ง๐ฉโ๐ฉโ๐งโ๐ฆ๐ฉโ๐ฉโ๐ฆโ๐ฆ๐ฉโ๐ฉโ๐งโ๐ง๐จโ๐ฆ๐จโ๐ฆโ๐ฆ๐จโ๐ง๐จโ๐งโ๐ฆ๐จโ๐งโ๐ง๐ฉโ๐ฆ๐ฉโ๐ฆโ๐ฆ๐ฉโ๐ง๐ฉโ๐งโ๐ฆ๐ฉโ๐งโ๐ง๐ฃ๐ค๐ฅ๐ซ๐ฃ๐ฆฐ๐ฆฑ๐ฆณ๐ฆฒ๐ต๐๐ฆ๐ฆง๐ถ๐๐ฆฎ๐โ๐ฆบ๐ฉ๐บ๐ฆ๐ฆ๐ฑ๐๐โโฌ๐ฆ๐ฏ๐
๐๐ด๐๐ฆ๐ฆ๐ฆ๐ฆฌ๐ฎ๐๐๐๐ท๐๐๐ฝ๐๐๐๐ช๐ซ๐ฆ๐ฆ๐๐ฆฃ๐ฆ๐ฆ๐ญ๐๐๐น๐ฐ๐๐ฟ๐ฆซ๐ฆ๐ฆ๐ป๐ปโโ๏ธ๐จ๐ผ๐ฆฅ๐ฆฆ๐ฆจ๐ฆ๐ฆก๐พ๐ฆ๐๐๐ฃ๐ค๐ฅ๐ฆ๐ง๐๐ฆ
๐ฆ๐ฆข๐ฆ๐ฆค๐ชถ๐ฆฉ๐ฆ๐ฆ๐ธ๐๐ข๐ฆ๐๐ฒ๐๐ฆ๐ฆ๐ณ๐๐ฌ๐ฆญ๐๐ ๐ก๐ฆ๐๐๐๐ฆ๐๐๐๐ชฒ๐๐ฆ๐ชณ๐ท๐ธ๐ฆ๐ฆ๐ชฐ๐ชฑ๐ฆ ๐๐ธ๐ฎ๐ต๐น๐ฅ๐บ๐ป๐ผ๐ท๐ฑ๐ชด๐ฒ๐ณ๐ด๐ต๐พ๐ฟโ๐๐๐๐๐๐๐๐๐๐๐๐ฅญ๐๐๐๐๐๐๐ซ๐ฅ๐
๐ซ๐ฅฅ๐ฅ๐๐ฅ๐ฅ๐ฝ๐ถ๐ซ๐ฅ๐ฅฌ๐ฅฆ๐ง๐ง
๐๐ฅ๐ฐ๐๐ฅ๐ฅ๐ซ๐ฅจ๐ฅฏ๐ฅ๐ง๐ง๐๐๐ฅฉ๐ฅ๐๐๐๐ญ๐ฅช๐ฎ๐ฏ๐ซ๐ฅ๐ง๐ฅ๐ณ๐ฅ๐ฒ๐ซ๐ฅฃ๐ฅ๐ฟ๐ง๐ง๐ฅซ๐ฑ๐๐๐๐๐๐๐ ๐ข๐ฃ๐ค๐ฅ๐ฅฎ๐ก๐ฅ๐ฅ ๐ฅก๐ฆ๐ฆ๐ฆ๐ฆ๐ฆช๐ฆ๐ง๐จ๐ฉ๐ช๐๐ฐ๐ง๐ฅง๐ซ๐ฌ๐ญ๐ฎ๐ฏ๐ผ๐ฅโ๐ซ๐ต๐ถ๐พ๐ท๐ธ๐น๐บ๐ป๐ฅ๐ฅ๐ฅค๐ง๐ง๐ง๐ง๐ฅข๐ฝ๐ด๐ฅ๐ช๐บ๐๐๐๐๐บ๐พ๐งญ๐โฐ๐๐ป๐๐๐๐๐๐๐๐๐งฑ๐ชจ๐ชต๐๐๐๐ ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐จ๐ฉ๐ช๐ซ๐ฌ๐ญ๐ฏ๐ฐ๐๐ผ๐ฝโช๐๐๐โฉ๐โฒโบ๐๐๐๐๐
๐๐๐โจ๐ ๐ก๐ข๐๐ช๐๐๐๐
๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐ป๐๐๐๐๐๐ต๐ฆฝ๐ฆผ๐บ๐ฒ๐ด๐น๐ผ๐๐ฃ๐ค๐ขโฝ๐จ๐ฅ๐ฆ๐๐งโโต๐ถ๐ค๐ณโด๐ฅ๐ขโ๐ฉ๐ซ๐ฌ๐ช๐บ๐๐๐ ๐ก๐ฐ๐๐ธ๐๐งณโโณโโฐโฑโฒ๐ฐ๐๐ง๐๐๐๐๐๐๐๐๐๐ ๐๐ก๐๐ข๐๐ฃ๐๐ค๐๐ฅ๐๐ฆ๐๐๐๐๐๐๐๐๐๐๐๐๐กโ๐๐๐ชโญ๐๐ ๐โโ
โ๐ค๐ฅ๐ฆ๐ง๐จ๐ฉ๐ช๐ซ๐ฌ๐๐๐โโโฑโกโโโโ๐ฅ๐ง๐๐๐๐๐๐งจโจ๐๐๐๐๐๐๐๐๐๐งง๐๐๐๐๐ซ๐๐๐
๐ฅ๐ฅ๐ฅโฝโพ๐ฅ๐๐๐๐๐พ๐ฅ๐ณ๐๐๐๐ฅ๐๐ธ๐ฅ๐ฅ๐ฅ
โณโธ๐ฃ๐คฟ๐ฝ๐ฟ๐ท๐ฅ๐ฏ๐ช๐ช๐ฑ๐ฎ๐ช๐งฟ๐ฎ๐น๐ฐ๐ฒ๐งฉ๐งธ๐ช
๐ชโ โฅโฆโฃโ๐๐๐ด๐ญ๐ผ๐จ๐งต๐ชก๐งถ๐ชข๐๐ถ๐ฅฝ๐ฅผ๐ฆบ๐๐๐๐งฃ๐งค๐งฅ๐งฆ๐๐๐ฅป๐ฉฑ๐ฉฒ๐ฉณ๐๐๐๐๐๐๐๐ฉด๐๐๐ฅพ๐ฅฟ๐ ๐ก๐ฉฐ๐ข๐๐๐ฉ๐๐งข๐ชโ๐ฟ๐๐๐๐๐๐๐๐ข๐ฃ๐ฏ๐๐๐ผ๐ต๐ถ๐๐๐๐ค๐ง๐ป๐ท๐ช๐ธ๐น๐บ๐ป๐ช๐ฅ"; |
| 14 | + |
| 15 | +#[bench] |
| 16 | +fn str_char_count_lorem(b: &mut Bencher) { |
| 17 | + b.iter(|| black_box(LOREM).chars().count()); |
| 18 | +} |
| 19 | + |
| 20 | +#[bench] |
| 21 | +fn str_char_count_lorem_short(b: &mut Bencher) { |
| 22 | + b.iter(|| black_box(LOREM_SHORT).chars().count()); |
| 23 | +} |
| 24 | + |
| 25 | +#[bench] |
| 26 | +fn str_char_count_emoji(b: &mut Bencher) { |
| 27 | + b.iter(|| black_box(EMOJI).chars().count()); |
| 28 | +} |
| 29 | + |
| 30 | +#[bench] |
| 31 | +fn str_validate_emoji(b: &mut Bencher) { |
| 32 | + b.iter(|| str::from_utf8(black_box(EMOJI.as_bytes()))); |
| 33 | +} |
0 commit comments