[ https://issues.apache.org/jira/browse/GIRAPH-874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14021515#comment-14021515 ]
Pavan Kumar commented on GIRAPH-874: ------------------------------------ well as u can see, there is a lot of un-necessary code duplication between the classes. It could be abstracted out much nicely. [~cmartella] pl commit it by verifying correctness for now. it can be refactored later, I found a nice abstraction for GIRAPH-873 as well which looks much better than current implementation which is already committed. So creating a task for future, I'll complete it when I find time. > Specialized byte array partitions > --------------------------------- > > Key: GIRAPH-874 > URL: https://issues.apache.org/jira/browse/GIRAPH-874 > Project: Giraph > Issue Type: Improvement > Components: graph > Affects Versions: 1.1.0 > Reporter: Craig Muchinsky > Attachments: GIRAPH-874-2.patch, GIRAPH-874.patch > > > While doing some performance tuning I discovered that loading byte array > partitions was performing slower than expected. I found that the extra time > was being spent allocating a new vertex object for each distinct vertexId > encountered (because vertexId object is the map key). Similar to GIRAPH-704, > the use of primitive maps can provide significant performance benefit in this > situation. By using a primitive map, the vertex object on the VertexIterator > can be reused perpetually because the vertexId object isn't used as the map > key. > When processing a large graph with 4B vertices the worker vertices requests > were taking ~15 seconds each, but after implementing the above suggestion > that number dropped down sub-second. -- This message was sent by Atlassian JIRA (v6.2#6252)