在使用 aStatelessWidget和 a 时,性能方面有什么区别function returning a Widget吗?
我很清楚至少在这个flutter 的 repo 问题中指出的差异与性能没有关系。
事实是,我有一些同事声称这functional widgets在性能方面是最差的,但在阅读了一些有关该主题的内容后,我找不到任何可以证明该断言的结论性文件,因此对此事的任何形式的澄清都将是非常欢迎!
据我所知,它们之间的唯一区别是在使用 a 的情况下const Widget,这似乎可以避免重建阶段。
我正在尝试应用 HMAC-SHA1 以检查某些内容,但无法使其正常工作。
这些是我的测试:
#[cfg(test)]
mod tests {
use crypto::hmac::Hmac;
use crypto::mac::Mac;
use crypto::sha1::Sha1;
use std::str::from_utf8;
const BODY_CONTENT: &'static str = r#"bodystring"#;
const KEY: &[u8] = b"secret_key";
const COMPUTED_HMAC: &'static str = "97049623b0e5d20bf6beb5313d80600e3d6abe56";
#[test]
fn test_hmac_sha1() {
let mut mac= Hmac::new(Sha1::new(), KEY);
mac.input(BODY_CONTENT.as_bytes());
let result = mac.result();
let code = result.code();
assert_eq!(COMPUTED_HMAC.as_bytes(), code);
assert_eq!(COMPUTED_HMAC, from_utf8(&code).unwrap_or("failed"));
}
#[test]
fn test_hmac_sha1_direct() {
let hash = hmacsha1::hmac_sha1(KEY, BODY_CONTENT.as_bytes());
assert_eq!(COMPUTED_HMAC.as_bytes(), hash);
assert_eq!(COMPUTED_HMAC, from_utf8(&hash).unwrap_or("failed"));
}
}
Run Code Online (Sandbox Code Playgroud)
我使用这个网站是为了COMPUTED_HMAC通过使用一个字符串 ( BODY_CONTENT) 和一个密钥 …