2015-11-05 17 views
0

這裏是沒有管道的代碼片段,gremlin中的Pipeline運行速度更快,並可以避免內存不足錯誤?

map = [:] 
edges = g.V('type', 'update').inE('createupdate') 
for(edge in edges) 
{ 
     date_long = edge.since.toLong() 
     incrValInMap(map,date_long) // this function add\increment value in map 
} 

,這裏是一個與pipleline做同樣的事情

map = [:] 
g.V('type', 'update').inE('createupdate').since.groupCount(map) 

我有幾個問題

  1. 是pipleline一個懶惰的評價?是否意味着它不需要在移動到下一個管道之前收集的所有頂點?

  2. 第二個代碼片段會比第一個代碼片段運行得更快嗎?

  3. 是第二代碼片段將導致更少的內存消耗

回答

1

我沒有看到你的代碼的兩個片段之間的真正區別。兩者都使用Pipeline ......唯一的區別在於您構建組計數的方式以及如何迭代它。對我來說,第二個代碼片段更好,因爲它更容易閱讀並且需要更少的代碼。您的第二個代碼段中的groupCount步驟與您在第一個代碼段中手動執行的操作基本相同。

相關問題