python和java之间的levelDB性能差异

时间:2019-04-28 20:23:03

标签: leveldb

我一直在尝试使用python和java加载levelDB数据,当简单的测试显示python的性能比Java更好且一致时,我感到有些惊讶。

尝试使用Java:

  • org.iq80.leveldb版本0.9(本机Java impl)=> 首选选项
  • org.fusesource.leveldbjni 1.8版(jni桥接至 C ++原生展示)

使用Python:

  • happynear / py-leveldb-windows

插入(正好如此)一个1M三元组的RDF数据集,我得到了这些结果(这些值并不重要,我想只是差异):

  • Java本机:平均26秒(每1k插入批处理的时间安排有很大差异)
  • Java JNI:阻止了大多数运行
  • Python:平均6秒(一千个批次中几乎没有变化)

我认为Java可能是内存问题(gc?),所以逐步增加了很多内存,无济于事。

有人在上面测试过leveldb java接口/实现,可以给我一些意见/输入吗?

我宁愿使用Java(如果可能的话,也要使用本地Java impl),因为在Java中数据集的加载和准备要快得多,并且如果需要的话,可以更轻松地触摸java impl。但是插入性能和不可预测性是行不通的。

谢谢。

0 个答案:

没有答案