Changeset View
Changeset View
Standalone View
Standalone View
java/src/main/java/org/softwareheritage/graph/backend/MapBuilder.java
package org.softwareheritage.graph.backend; | package org.softwareheritage.graph.backend; | ||||
import java.io.*; | import java.io.*; | ||||
import java.nio.charset.StandardCharsets; | import java.nio.charset.StandardCharsets; | ||||
import java.util.Scanner; | import java.util.Scanner; | ||||
import java.util.concurrent.*; | import java.util.concurrent.*; | ||||
import it.unimi.dsi.bits.LongArrayBitVector; | import it.unimi.dsi.bits.LongArrayBitVector; | ||||
import it.unimi.dsi.fastutil.BigArrays; | |||||
import it.unimi.dsi.fastutil.Size64; | import it.unimi.dsi.fastutil.Size64; | ||||
import it.unimi.dsi.fastutil.io.BinIO; | import it.unimi.dsi.fastutil.io.BinIO; | ||||
import it.unimi.dsi.fastutil.longs.LongBigArrays; | import it.unimi.dsi.fastutil.longs.LongBigArrays; | ||||
import it.unimi.dsi.fastutil.longs.LongBigList; | import it.unimi.dsi.fastutil.longs.LongBigList; | ||||
import it.unimi.dsi.fastutil.objects.Object2LongFunction; | import it.unimi.dsi.fastutil.objects.Object2LongFunction; | ||||
import it.unimi.dsi.fastutil.objects.ObjectBigArrays; | import it.unimi.dsi.fastutil.objects.ObjectBigArrays; | ||||
import it.unimi.dsi.io.FastBufferedReader; | import it.unimi.dsi.io.FastBufferedReader; | ||||
import it.unimi.dsi.io.LineIterator; | import it.unimi.dsi.io.LineIterator; | ||||
▲ Show 20 Lines • Show All 124 Lines • ▼ Show 20 Lines | static void precomputeNodeIdMap(String graphPath, String tmpDir) | ||||
plPid2Node.start("filling pid2node map"); | plPid2Node.start("filling pid2node map"); | ||||
for (long iNode = 0; iNode < nbIds && swhPIDIterator.hasNext(); iNode++) { | for (long iNode = 0; iNode < nbIds && swhPIDIterator.hasNext(); iNode++) { | ||||
String strSwhPID = swhPIDIterator.next().toString(); | String strSwhPID = swhPIDIterator.next().toString(); | ||||
SwhPID swhPID = new SwhPID(strSwhPID); | SwhPID swhPID = new SwhPID(strSwhPID); | ||||
byte[] swhPIDBin = swhPID.toBytes(); | byte[] swhPIDBin = swhPID.toBytes(); | ||||
long mphId = mphMap.getLong(strSwhPID); | long mphId = mphMap.getLong(strSwhPID); | ||||
long nodeId = LongBigArrays.get(bfsMap, mphId); | long nodeId = BigArrays.get(bfsMap, mphId); | ||||
pidToNodeMap.write(swhPIDBin, 0, swhPIDBin.length); | pidToNodeMap.write(swhPIDBin, 0, swhPIDBin.length); | ||||
pidToNodeMap.writeLong(nodeId); | pidToNodeMap.writeLong(nodeId); | ||||
sort_stdin.write((strSwhPID + "\t" + nodeId + "\n") | sort_stdin.write((strSwhPID + "\t" + nodeId + "\n") | ||||
.getBytes(StandardCharsets.US_ASCII)); | .getBytes(StandardCharsets.US_ASCII)); | ||||
nodeTypesMap.set(nodeId, swhPID.getType().ordinal()); | nodeTypesMap.set(nodeId, swhPID.getType().ordinal()); | ||||
plPid2Node.lightUpdate(); | plPid2Node.lightUpdate(); | ||||
▲ Show 20 Lines • Show All 59 Lines • Show Last 20 Lines |