Daniel Kuppitz created TINKERPOP-1682:
-----------------------------------------
Summary: modulator optimization strategy
Key: TINKERPOP-1682
URL: https://issues.apache.org/jira/browse/TINKERPOP-1682
Project: TinkerPop
Issue Type: Improvement
Components: process
Affects Versions: 3.2.4
Reporter: Daniel Kuppitz
The can be a significant difference in performance depending on whether you use
{{by(id)}} or {{by(id())}}:
{noformat}
gremlin> g.V().out().in().path().by(id()).profile()
==>Traversal Metrics
Step Count
Traversers Time (ms) % Dur
=============================================================================================================
TinkerGraphStep(vertex,[]) 6
6 12.137 58.03
VertexStep(OUT,vertex) 6
6 1.345 6.43
VertexStep(IN,vertex) 12
12 0.861 4.12
PathStep([[IdStep, ProfileStep]]) 12
12 6.570 31.42
IdStep 36
36 0.452
>TOTAL -
- 20.916 -
gremlin> g.V().out().in().path().by(id).profile()
==>Traversal Metrics
Step Count
Traversers Time (ms) % Dur
=============================================================================================================
TinkerGraphStep(vertex,[]) 6
6 0.876 11.54
VertexStep(OUT,vertex) 6
6 0.714 9.40
VertexStep(IN,vertex) 12
12 3.299 43.43
PathStep([id]) 12
12 2.706 35.63
>TOTAL -
- 7.596 -
{noformat}
We should have a strategy that rewrites these simple patterns. This affects
{{id()}}, {{label()}}, {{key()}}, {{value()}}, but also {{by(values("name"))}},
which can be rewritten as {{by("name")}}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)