|
|
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 DDD888 于 2025-12-6 11:52 编辑
今天无聊,看我写的调用命令行代码openssl dgst -sha384 -binary test.js | openssl base64 -A花了大概13ms,用RUST LANGUAGE写了,竟然只用了3.76ms, 不可置信,一般我写的C#代码都会比用C语言的命令行代码慢,现在这代码竟然比openssl快,应该是因为PIPE的冗余,当然啦这节省的9毫秒是没有任何实际价值的,纯粹是学习啦。
pub fn compute_sha384_base64<P>(
full_path: P,
file_name: &str,
) -> Result<String, Report<ApplicationError>>
where
P: AsRef<Path>,
{
fn inner(full_path: &Path, file_name: &str) -> Result<String, Report<ApplicationError>> {
let file_path = full_path.join("static").join(file_name);
let text = read_to_string(&file_path).change_context(
ApplicationError::ReadToString(file_path.display().to_string()),
)?;
let digest_string = Sha384::digest(&text);
Ok(base64::engine::general_purpose::STANDARD.encode(digest_string))
}
inner(full_path.as_ref(), file_name)
}
关于你说代码的论点,我学到的观点我认为应该是我自己写代码的时候,应该时刻记住这代码是将来的我要维护的代码,我要努力让将来的我非常容易的可以读懂我现在写的代码,所以我是绝对不会使用例如regular expression之类的代码的,因为我资质不高,不能理解复杂的代码,同理,我给出的我的RUST LANGUAGE代码实现命令行openssl dgst -sha384 -binary test.js | openssl base64 -A,我感觉维护性来说,RUST LANGUAGE的代码并没有增加代码的复杂度,这代码还是非常简单容易阅读的
|
|