1   package eu.fbk.rdfpro.util;
2   
3   import org.openrdf.model.Statement;
4   
5   import eu.fbk.rdfpro.RDFHandlers;
6   import eu.fbk.rdfpro.RDFSource;
7   import eu.fbk.rdfpro.RDFSources;
8   import eu.fbk.rdfpro.util.IO;
9   import eu.fbk.rdfpro.util.QuadModel;
10  
11  public class QuadModelLoadTest {
12  
13      public static void main(final String... args) throws Throwable {
14  
15          final QuadModel model = QuadModel.create();
16  
17          // final Path path = Files.createTempDirectory("sailmodel");
18          // path.toFile().deleteOnExit();
19          // final MemoryStore sail = new MemoryStore(path.toFile());
20          // sail.setPersist(false);
21          // sail.initialize();
22          // final SailConnection connection = sail.getConnection();
23          // connection.begin(IsolationLevels.NONE);
24          // final QuadModel model = QuadModel.wrap(connection, true);
25  
26          final long ts = System.currentTimeMillis();
27  
28          final RDFSource source = RDFSources.read(false, true, null, null, args);
29          source.emit(RDFHandlers.synchronize(RDFHandlers.wrap(model)), 1);
30          Runtime.getRuntime().gc();
31          final long mem = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
32  
33          final long ts2 = System.currentTimeMillis();
34          System.out.println(model.size() + " " + mem + " " + (ts2 - ts));
35  
36          int sum = 0;
37          for (final Statement stmt : model) {
38              // sum += stmt.hashCode();
39              // ++sum;
40              sum += stmt.getSubject().stringValue().hashCode();
41              sum += stmt.getObject().stringValue().hashCode();
42              sum += stmt.getPredicate().stringValue().hashCode();
43          }
44  
45          final long ts3 = System.currentTimeMillis();
46          System.out.println(sum + " " + (ts3 - ts2));
47  
48          IO.closeQuietly(model);
49      }
50  
51  }