jeudi 17 août 2017

issues with consistent speed when using lein test

disclaimer - I am running this on a mid 2012 macbook air i7-3667U and 8gb ram with the 64bit jvm.

Running the test suite for an application lein t is running at what I would consider an abnormally slow speed. Most of the tests involve mongo db (creating and dropping tables/collections). I have moved to monngodb enterprise which allows running in memory. As I assumed that the bottleneck was the db io.

with a mongo.conf

storage:
   engine: inMemory
   dbPath: /Users/beoliver/data/testdb
   inMemory:
      engineConfig:
         inMemorySizeGB: 1

mongo is started with the flag --conf ~/path/to/mongo.conf

I added the java flags to the project

:jvm-opts ["-XX:-OmitStackTraceInFastThrow" "-Xmx4g" "-Xms1g"]

to try and avoid extra swaps.

This appeared to fix the issue and the tests ran as:

time lein t
...
lein t  238.71s user 8.72s system 59% cpu 6:57.92 total

This is reasonable compared with the results from other team members.

But then re-running the tests again the speed is back to the original (half and hour mark).

lein t  252.53s user 13.76s system 16% cpu 26:52.45 total

cpu usage peaks at about 50% but for the most part is around <5% (this includes times when it idles at <1%)

Real memory size: 1.55 GB
Virtual memory size : 8.08 GB
Shared Memory Size: 18.0 MB
Private Memory Size : 1.67 GB

Has anyone had similar experiences? Suggestions? Is there a good way of profiling - better than starting at Activity monitor?

Aucun commentaire:

Enregistrer un commentaire