4 个版本
使用旧的 Rust 2015
0.1.2 | 2015年8月26日 |
---|---|
0.1.1 | 2015年2月22日 |
0.1.0 | 2015年2月22日 |
0.0.1 | 2015年2月21日 |
4 在 #sanitize 中排名
506 每月下载量
在 7 个 crate 中使用
460KB
812 行
一个快速的 HTML 编码和 HTML 解码实现(在 Rust 中)。
快吗?
实际上,我仅将此实现与 Python 的 html.encode
和 html.decode
进行了比较,Python 的性能如此之低,几乎无法进行比较...
无论如何,这里是在 Intel 的 [email protected] 上(完全非科学的)的数字和它们的解释
test no_escape_bytes ... bench: 1109 ns/iter (+/- 56) = 952 MB/s
test no_escape_bytes_filter ... bench: 2725 ns/iter (+/- 151) = 387 MB/s
test no_escape_chars ... bench: 2695 ns/iter (+/- 144) = 391 MB/s
我们进行了 3 个基准测试:两个用于检查迭代器消耗的速度,一个用于基准测试流的最小过滤。这些基准测试作为参考点,可以清楚地了解转义和反转义带来的开销。
test escape_mixed ... bench: 5595 ns/iter (+/- 129) = 175 MB/s
test escape_no_spec ... bench: 6494 ns/iter (+/- 119) = 347 MB/s
test escape_spec_long ... bench: 5515 ns/iter (+/- 157) = 117 MB/s
test escape_spec_short ... bench: 4324 ns/iter (+/- 94) = 150 MB/s
test unescape_no_spec ... bench: 7228 ns/iter (+/- 7) = 242 MB/s
test unescape_spec_hex ... bench: 3024 ns/iter (+/- 191) = 277 MB/s
test unescape_spec_named ... bench: 8073 ns/iter (+/- 386) = 109 MB/s
test unescape_spec_num ... bench: 2995 ns/iter (+/- 195) = 280 MB/s
请注意,转义和反转义基准测试测试的是输入消耗的速度,而不是产生速度。随着对 Iterator
的代码生成改进以及我与 LLVM 的斗争结束,它们可能会进一步改进。