本帖最后由 bailong360 于 2019-3-22 22:14 编辑
回复 7# bailong360
这段 C# 好像太快了点...
我用 Rust 实现了一下, 然而也花了 3s. 目前正在向 Rust 大佬们寻求优化方案......- use rand::{seq::SliceRandom, FromEntropy};
- use rand_xorshift::XorShiftRng;
- use std::fs::File;
- use std::io::Write;
-
- fn main() {
- let chars = b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- let mut rng = XorShiftRng::from_entropy();
-
- let mut file = File::create("test.txt").unwrap();
- for _ in 0..1000000 {
- let v = (0..7)
- .map(|n| {
- if n == 0 {
- *chars.choose(&mut rng).unwrap()
- } else {
- **(&chars[0..26].choose(&mut rng).unwrap())
- }
- })
- .collect::<Vec<_>>();
- file.write_all(&v).unwrap();
- file.write_all(&[b'\n']).unwrap();
- }
- }
复制代码 === 更新 ===
艹, 应该用 BufWriter wrap 一下, 这样就 0.16s 左右了...- let file = File::create("test.txt").unwrap();
- let mut file = BufWriter::new(file);
复制代码
|