mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2025-08-03 21:08:18 +00:00
Replace hashing algorithm and disable debug logging for improved performance
This commit is contained in:
parent
7ce9d6db05
commit
1c50f0030c
10 changed files with 35 additions and 23 deletions
|
@ -24,3 +24,4 @@ specta.workspace = true
|
|||
|
||||
bytemuck = {version = "1.8" }
|
||||
anyhow = "1.0.66"
|
||||
xxhash-rust = {workspace = true}
|
||||
|
|
|
@ -379,14 +379,7 @@ impl NodeNetwork {
|
|||
}
|
||||
NodeInput::Value { tagged_value, exposed } => {
|
||||
// Skip formatting very large values for seconds in performance speedup
|
||||
let name = if matches!(
|
||||
tagged_value,
|
||||
TaggedValue::Image(_) | TaggedValue::RcImage(_) | TaggedValue::Color(_) | TaggedValue::Subpath(_) | TaggedValue::RcSubpath(_)
|
||||
) {
|
||||
"Value".to_string()
|
||||
} else {
|
||||
format!("Value: {:?}", tagged_value)
|
||||
};
|
||||
let name = "Value".to_string();
|
||||
let new_id = map_ids(id, gen_id());
|
||||
let value_node = DocumentNode {
|
||||
name,
|
||||
|
@ -654,8 +647,6 @@ mod test {
|
|||
network.flatten_with_fns(1, |self_id, inner_id| self_id * 10 + inner_id, gen_node_id);
|
||||
let flat_network = flat_network();
|
||||
|
||||
println!("{:#?}", network);
|
||||
println!("{:#?}", flat_network);
|
||||
assert_eq!(flat_network, network);
|
||||
}
|
||||
|
||||
|
@ -746,7 +737,7 @@ mod test {
|
|||
(
|
||||
14,
|
||||
DocumentNode {
|
||||
name: "Value: U32(2)".into(),
|
||||
name: "Value".into(),
|
||||
inputs: vec![NodeInput::Value {
|
||||
tagged_value: value::TaggedValue::U32(2),
|
||||
exposed: false,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use std::borrow::Cow;
|
||||
use std::collections::{HashMap, HashSet};
|
||||
use std::hash::Hash;
|
||||
use xxhash_rust::xxh3::Xxh3;
|
||||
|
||||
use crate::document::value;
|
||||
use crate::document::NodeId;
|
||||
|
@ -135,7 +136,8 @@ impl ProtoNodeInput {
|
|||
impl ProtoNode {
|
||||
pub fn stable_node_id(&self) -> Option<NodeId> {
|
||||
use std::hash::Hasher;
|
||||
let mut hasher = std::collections::hash_map::DefaultHasher::new();
|
||||
let mut hasher = Xxh3::new();
|
||||
|
||||
self.identifier.name.hash(&mut hasher);
|
||||
self.construction_args.hash(&mut hasher);
|
||||
match self.input {
|
||||
|
@ -593,12 +595,12 @@ mod test {
|
|||
assert_eq!(
|
||||
ids,
|
||||
vec![
|
||||
15907139529964845467,
|
||||
1552706903207877482,
|
||||
15211082859148708110,
|
||||
3361684226823984981,
|
||||
16609475913638361514,
|
||||
5640155373642511298
|
||||
7332206428857154453,
|
||||
946497269036214321,
|
||||
3038115864048241698,
|
||||
1932610308557160863,
|
||||
2105748431407297710,
|
||||
8596220090685862327
|
||||
]
|
||||
);
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ kurbo = { git = "https://github.com/linebender/kurbo.git", features = [
|
|||
glam = { version = "0.22", features = ["serde"] }
|
||||
node-macro = { path="../node-macro" }
|
||||
boxcar = "0.1.0"
|
||||
xxhash-rust = {workspace = true}
|
||||
|
||||
[dependencies.serde]
|
||||
version = "1.0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use std::collections::hash_map::DefaultHasher;
|
||||
use std::hash::{Hash, Hasher};
|
||||
use std::marker::PhantomData;
|
||||
use xxhash_rust::xxh3::Xxh3;
|
||||
|
||||
use graphene_core::Node;
|
||||
|
||||
|
@ -14,7 +14,7 @@ pub struct CacheNode<T> {
|
|||
impl<'i, T: 'i + Hash> Node<'i, T> for CacheNode<T> {
|
||||
type Output = &'i T;
|
||||
fn eval<'s: 'i>(&'s self, input: T) -> Self::Output {
|
||||
let mut hasher = DefaultHasher::new();
|
||||
let mut hasher = Xxh3::new();
|
||||
input.hash(&mut hasher);
|
||||
let hash = hasher.finish();
|
||||
|
||||
|
@ -51,7 +51,7 @@ impl<'i, T: 'i + Hash> Node<'i, Option<T>> for LetNode<T> {
|
|||
fn eval<'s: 'i>(&'s self, input: Option<T>) -> Self::Output {
|
||||
match input {
|
||||
Some(input) => {
|
||||
let mut hasher = DefaultHasher::new();
|
||||
let mut hasher = Xxh3::new();
|
||||
input.hash(&mut hasher);
|
||||
let hash = hasher.finish();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue