From ab2f41f5985bf4a877d8bee0fa22bc8e53f3397d Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Thu, 6 Aug 2020 14:20:45 +0200 Subject: [PATCH] Mention performance caveats about `find_node()` and `find_parent()` See https://github.com/godotengine/godot-proposals/issues/1303. --- doc/classes/Node.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml index e921cbd58a6..0f09f81496e 100644 --- a/doc/classes/Node.xml +++ b/doc/classes/Node.xml @@ -194,6 +194,7 @@ Finds a descendant of this node whose name matches [code]mask[/code] as in [method String.match] (i.e. case-sensitive, but [code]"*"[/code] matches zero or more characters and [code]"?"[/code] matches any single character except [code]"."[/code]). [b]Note:[/b] It does not match against the full path, just against individual node names. If [code]owned[/code] is [code]true[/code], this method only finds nodes whose owner is this node. This is especially important for scenes instantiated through a script, because those scenes don't have an owner. + [b]Note:[/b] As this method walks through all the descendants of the node, it is the slowest way to get a reference to another node. Whenever possible, consider using [method get_node] instead. To avoid using [method find_node] too often, consider caching the node reference into a variable. @@ -204,6 +205,7 @@ Finds the first parent of the current node whose name matches [code]mask[/code] as in [method String.match] (i.e. case-sensitive, but [code]"*"[/code] matches zero or more characters and [code]"?"[/code] matches any single character except [code]"."[/code]). [b]Note:[/b] It does not match against the full path, just against individual node names. + [b]Note:[/b] As this method walks upwards in the scene tree, it can be slow in large, deeply nested scene trees. Whenever possible, consider using [method get_node] instead. To avoid using [method find_parent] too often, consider caching the node reference into a variable.