Skip to content

Amélioration des performances de lecture du graphe (novembre 2017)

Erwan Demairy edited this page Nov 11, 2017 · 2 revisions

Temps de lecture avec /Users/edemairy/Developpement/RequetesOlivier/dbpedia/dbpedia.ttl:50000 /Users/edemairy/tmp/v2 nulldriver (uniquement le parsing, pas de génération de bd)

À peu près 20 minutes pour 26 millions d'arcs.

Temps de lecture avec /Users/edemairy/Developpement/RequetesOlivier/dbpedia/dbpedia.ttl:50000 /Users/edemairy/tmp/v2 neo4j (uniquement le parsing, pas de génération de bd)

Modifications effectuées sur la branche feature/demo_adt.

  • tag f9b34b293587e3c89d7ff44dbcc16fcdb38ebfb7

    • temps total : 551 440 ms
    • temps ...Neo4jDriver.createRelationShip : 464 939 ms (84,3%)
      • temps ...GdbDriver.createOrGetNode : 230,056 ms (41,7%)
        • getNode : 30,5%
      • temps hasNext : 16,5%
      • addVertex : 14,8%
      • addEdge : 7,6%
  • tag f9... + 2 lignes déplacées dans createRelationship

    • temps total : 652 974 ms
    • temps ...Neo4jDriver.createRelationShip : 569 468 ms (87,2%)
      • temps ...GdbDriver.createOrGetNode : 272 675 ms (42,3%)
        • getNode : 30,3%
      • temps hasNext : 17,7%
      • addVertex : 15,9%
      • addEdge : 7,9%
  • tag d0538d9978927a295fbe4565a836d2db8e05a3c1

    • temps total : 441 576 ms
    • temps ...Neo4jDriver.createRelationShip : 354 759 ms (80,1%)
      • temps ...GdbDriver.createOrGetNode : 272 675 ms (51,9%)
        • getNode : 38,2%
      • temps hasNext : 0% (normal, il n'existe plus)
      • addVertex : 18,3%
      • addEdge : 9,4%
  • tag c64a3300ed8c25f8ff72e85555153b53f38530bb

    • temps total : 260 371 ms
    • temps ...Neo4jDriver.createRelationShip : 180 200 ms (69,2%)
      • temps ...GdbDriver.createOrGetNode : 106 160 ms (40,8%)
        • getNode : 25,1 %
      • addVertex : 18,3 %
      • addEdge : 9,6 %
  • tag 84ea4532808c91140edeb540b1a65ca7609e00d5

    • temps total : 225 028 ms
    • temps ...Neo4jDriver.createRelationShip : 153 798 ms (68,3 %)
      • temps ...GdbDriver.createOrGetNode : 73 996 ms (32,9%)
        • getNode : passé à 0,8 %
      • addVertex : 22,9%
      • addEdge : 12%
    • Remarque : les temps semblent maintenant cohérents avec la fonctionnalité utilisée (créer un graphe, et effectivement les activités les plus coûteuses sont addEdge, addVertex et commit). Comme voie d'amélioration possible, il reste le propriétés : on voit createOrGetNode::property = 17,2 % et addVertex::attachProperties = 14,1 %.