10 миллионов неудачных ставок в LevelDB

Я только начал работать с leveldb, и мне было интересно, может ли кто-нибудь ответить на несколько вопросов об этом для меня. Я использую его на виртуальной машине CentOs с 8 ГБ ОЗУ, 20 ГБ памяти, 2 ядрами и процессором Intel i7. Я не знаю, имеет ли это значение.

Я хотел протестировать производительность leveldb, поэтому я попытался выполнить 10 миллионов операций последовательно (не в пакете), и у меня не получилось, я получил ошибку нехватки памяти. Но когда я сделал топ, я увидел, что этот узел использует только около 25% доступной памяти. Что я делаю неправильно?

Вот мой код:

var level = require('level');
var db = level('test.db' {
  valueEncoding: 'json'
});

for (i = 0; i <= 10000000; i++) {
  var value = { 'value': i };
  db.put(i.toString(), value);
}

Когда это не удалось, я попробовал 1 миллион путов, что произошло за 2-3 секунды без проблем. Я увеличил его до 3,5 миллиона и получил ошибку нехватки памяти примерно через 40 минут ожидания. Я заметил, что коду удается пройти через все путы, но затем делает кучу *.ldb файлы в test.db и продолжает делать их, пока у меня не кончится память.

Может кто-нибудь объяснить мне, что происходит?

0 ответов

Другие вопросы по тегам