Cole-Greer opened a new pull request, #3339:
URL: https://github.com/apache/tinkerpop/pull/3339

   https://issues.apache.org/jira/browse/TINKERPOP-3231
   
   As of 3.8.0, `P.setValue()` must process incoming collections to separate 
variables and literals. This can add significant overhead in the case of very 
large collections. 3.8.0 contained a "fast happy path" for the common case 
where no GValues are present, although this was gated by a GValue check 
utilizing Java's stream() API. This PR replaces that check with a simple 
for-loop check which in testing cuts the latency in half.
   
   Mentioned in the JIRA but not included in this PR is optimizations to 
`getValue()`, which has already been covered by 
https://github.com/apache/tinkerpop/commit/b2816c5669970adbcd451493f057078ff58f17d5.
   
   ### Benchmark Results
   
   |                        | 3.8.0    | 3.8.1-SNAPSHOT |
   |------------------------|----------|----------------|
   | setValue([1M doubles]) | 3.63ms   | 1.74 ms        |
   | setValue([1M GValues]) | 31.01 ms | 28.12 ms       |
   | setValue([1M Mixed])   | 18.04 ms | 19.03 ms       |
   | getValue([1M doubles]) | 3.05 ms  | 2.74 ms              |
   | getValue([1M GValues]) | 13.04 ms | 12.74 ms              |
   | getValue([1M Mixed])   | 7.52 ms  | 6.38 ms              |
   
   VOTE +1


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to