Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-1631

Java driver is 4 times slower than shell when loading data

    • Type: Icon: Improvement Improvement
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 2.12.3
    • Component/s: Performance
    • None
    • Environment:
      MBP, 16G RAM, Single instance MongoDB 2.6.1

      First populate a test collection:

          for(var i=0;i<5000;i++) db.test.save(obj);  
          // where obj is a rich document, avg size 8KB. 
      

      When ran within Mongo shell:

          Date.timeFunc(function(){
               for(var i=0;i<30;i++){ db.test.find().toArray() }
          })
      

      Total time used: 1996ms (30 queries)
      Average time per query: 67ms

      When ran in a standard java program:

           DB db = mongoClient.getDB( "ceairdb" );
      
          DBCollection coll = db.getCollection("test");
      
          try {
              Date now = new Date(); 
              Date end = null;
              for(int k=0;k<30;k++){
                  cursor = coll.find();
                  cursor.toArray();
              } 
              end = new Date();             
          } finally {
             cursor.close();
          }
      

      Total time used: 8600 ms
      Average time per query: 280 ms

      Expected: Java drivers's performance should be comparable to shell version

            Assignee:
            Unassigned Unassigned
            Reporter:
            jianfa.tang@mongodb.com Jianfa Tang (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: