Github user okram commented on the issue:
https://github.com/apache/tinkerpop/pull/470
I ran a benchmark:
**BRYN'S BRANCH**
```
gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> graph.io(gryo()).readGraph('data/grateful-dead.kryo')
==>null
gremlin> h = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:808 edges:8049], standard]
gremlin> g = graph.traversal().withoutStrategies(LazyBarrierStrategy.class)
==>graphtraversalsource[tinkergraph[vertices:808 edges:8049], standard]
gremlin>
gremlin> clock(100){ h.V().out().out().out().toSet() }
==>5.142378699999999
gremlin> clock(20){ g.V().out().out().out().toSet() }
==>778.8892011
gremlin> clock(20){ g.V().out().flatMap(out()).flatMap(out()).toSet() }
==>1234.6360252
gremlin> clock(100){ g.V().repeat(out()).times(3).toSet() }
==>2.2864299399999997
gremlin> clock(100){ h.V().count() }
==>0.01190773
```
**MASTER BRANCH**
```
gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> graph.io(gryo()).readGraph('data/grateful-dead.kryo')
==>null
gremlin> h = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:808 edges:8049], standard]
gremlin> g = graph.traversal().withoutStrategies(LazyBarrierStrategy.class)
==>graphtraversalsource[tinkergraph[vertices:808 edges:8049], standard]
gremlin>
gremlin> clock(100){ h.V().out().out().out().toSet() }
==>3.2528534
gremlin> clock(20){ g.V().out().out().out().toSet() }
==>701.7937965499999
gremlin> clock(20){ g.V().out().flatMap(out()).flatMap(out()).toSet() }
==>1374.86072635
gremlin> clock(100){ g.V().repeat(out()).times(3).toSet() }
==>2.4810170499999997
gremlin> clock(100){ h.V().count() }
==>0.01866702
```
The reason for the `withoutStrategies(LazyBarrierStrategy)` is that I
wanted to test lots and lots of results and thus, test the cost of the added
`try/catch`-block. I guess the costs are neglible (?? what do others think ??).
Also, @bryncooke, can you provide an example of master/ vs. your branch of
when its good to get a `NoSuchElementException`? When I do:
```
gremlin> g.V().out().values('age').next()
java.util.NoSuchElementException
Type ':help' or ':h' for help.
Display stack trace? [yN]y
java.util.NoSuchElementException
at
org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.next(DefaultTraversal.java:194)
...
```
...all I learn is that the traversal `next()` method couldn't find
anything. But that is obvious. When is it NOT obvious?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---