免责声明 - 我在2012年中期的macbook air i7-3667U和8gb ram上使用64位jvm运行。
运行应用程序lein t
的测试套件正在运行,我认为速度异常缓慢。大多数测试涉及mongo db(创建和删除表/集合)。我已经转移到允许在内存中运行的monngodb企业。因为我认为瓶颈是db io。
使用mongo.conf
storage:
engine: inMemory
dbPath: /Users/beoliver/data/testdb
inMemory:
engineConfig:
inMemorySizeGB: 1
mongo以标记--conf ~/path/to/mongo.conf
我将java标志添加到项目中
:jvm-opts ["-XX:-OmitStackTraceInFastThrow" "-Xmx4g" "-Xms1g"]
尽量避免额外掉期。
这似乎解决了问题,测试运行如下:
time lein t
...
lein t 238.71s user 8.72s system 59% cpu 6:57.92 total
与其他团队成员的结果相比,这是合理的。
然后再次重新运行测试,速度又恢复到原来的速度(半小时标记)。
lein t 252.53s user 13.76s system 16% cpu 26:52.45 total
cpu使用率达到50%左右,但大部分时间约为<5%(包括空闲时间<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
有没有人有类似的经历?建议?有没有一种好的分析方法 - 比从Activity监视器开始更好?