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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to