auto commit
This commit is contained in:
@@ -1,16 +1,15 @@
|
|||||||
mod idgen;
|
mod idgen;
|
||||||
|
|
||||||
|
use chrono::Utc;
|
||||||
use idgen::*;
|
use idgen::*;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use chrono::Utc;
|
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
println!("Hello, world! Rust");
|
println!("Hello, world! Rust");
|
||||||
|
|
||||||
// 总执行次数
|
// 总执行次数
|
||||||
let times = 50000;
|
let times = 500000;
|
||||||
|
|
||||||
// 是否启用多线程测试
|
// 是否启用多线程测试
|
||||||
let multiThread = false;
|
let multiThread = false;
|
||||||
@@ -18,7 +17,7 @@ fn main() {
|
|||||||
// 全局设置一次运行参数
|
// 全局设置一次运行参数
|
||||||
let mut options = IdGeneratorOptions::New(1);
|
let mut options = IdGeneratorOptions::New(1);
|
||||||
options.WorkerIdBitLength = 6;
|
options.WorkerIdBitLength = 6;
|
||||||
options.SeqBitLength = 6;
|
options.SeqBitLength = 10;
|
||||||
//... 可以继续设置其它 options 参数
|
//... 可以继续设置其它 options 参数
|
||||||
YitIdHelper::SetIdGenerator(options);
|
YitIdHelper::SetIdGenerator(options);
|
||||||
|
|
||||||
@@ -32,24 +31,29 @@ fn main() {
|
|||||||
|
|
||||||
while i < times {
|
while i < times {
|
||||||
i += 1;
|
i += 1;
|
||||||
if multiThread { // 这是多线程
|
YitIdHelper::NextId();
|
||||||
thread::spawn(move || {
|
|
||||||
id = YitIdHelper::NextId();
|
// if multiThread { // 这是多线程
|
||||||
println!("{}, id: {}", i, id);
|
// thread::spawn(move || {
|
||||||
});
|
// id = YitIdHelper::NextId();
|
||||||
} else { // 这是单线程
|
// println!("{}, id: {}", i, id);
|
||||||
id = YitIdHelper::NextId();
|
// });
|
||||||
}
|
// } else { // 这是单线程
|
||||||
|
// id = YitIdHelper::NextId();
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
println!("最后生成的id: {}", id);
|
|
||||||
if !multiThread {
|
|
||||||
// 多线程情况下,时间统计不准确
|
|
||||||
let end = Utc::now().timestamp_millis();
|
let end = Utc::now().timestamp_millis();
|
||||||
println!("单线程用时 {} ms", end - start);
|
println!("单线程用时 {} ms", end - start);
|
||||||
}
|
|
||||||
|
|
||||||
thread::sleep(std::time::Duration::from_millis(2000));
|
// println!("最后生成的id: {}", id);
|
||||||
|
// if !multiThread {
|
||||||
|
// // 多线程情况下,时间统计不准确
|
||||||
|
// let end = Utc::now().timestamp_millis();
|
||||||
|
// println!("单线程用时 {} ms", end - start);
|
||||||
|
// }
|
||||||
|
|
||||||
|
thread::sleep(std::time::Duration::from_millis(1000));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,6 +75,4 @@ fn set_redis() {
|
|||||||
// },
|
// },
|
||||||
// Err(error) => println!("Unable to create Redis client: {}", error)
|
// Err(error) => println!("Unable to create Redis client: {}", error)
|
||||||
// }
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user