Txn.get ("somekey") занимает ОЗУ для остальной части сценария python? если да, как освободить оперативную память, которую он использует? - PullRequest
1 голос
/ 10 октября 2019

У меня есть скрипт, в котором я пытаюсь добавить данные в существующую пару ключ / значение. Проблема в том, что всякий раз, когда я получаю существующие данные, используя txn.get(), он использует оперативную память, которую впоследствии не освобождает. Когда предел оперативной памяти приближается, компьютер становится очень медленным и пространство подкачки используется все больше и больше. Пока я не достиг предела пространства подкачки, но я боюсь, что мой скрипт прекратит работу, если он достигнет предела. Но в любом случае, без использования оперативной памяти мой сценарий будет работать без проблем даже при небольшой оперативной памяти.

Вот фрагмент моего сценария, вызывающий у меня эту проблему:

for p in xrange(strings_number):  
    data=txn.get(struct.pack('i',900000+p))  #I want to reorganize this bytestring into columns
    for j in xrange(col_number):
        to_be_appended=""
        for l in xrange(j*4,len(data),size):
            to_be_appended+=data[l:l+4]
        temp=txn.get(struct.pack('i',j))  #whenever I call txn.get() memory usage gets bigger
        txn.put(struct.pack('i',j),temp+to_be_appended,dupdata=False,overwrite=True)         
        txn.delete(struct.pack('i',900000+p))
...