Я использую библиотеку многопроцессорности python для обработки больших наборов данных в реальном времени.Python Multiprocessing - очистить оперативную память после перезапуска процесса
Иногда мне нужно перезапустить процессы для изменения некоторых параметров.
Есть ли возможность очистить данные, которые сохраняются в ОЗУ. Я видел, что мой объем использования RAM ~ 2%/перезапуск.
Вы можете найти после моего кода, например:
# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore
import multiprocessing
import sys
def calc(q):
x=5
for i in range (10):
x = x+1
q.put(x)
def calc_calc(quee, qq):
for u in range (10):
y = quee.get()
z = y*10
qq.put(z)
def calc_end(queee, qqq):
for w in range (10):
h = queee.get()
xy = h*10
print(xy)
qqq.put(xy)
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.button = QtGui.QPushButton('Test', self)
self.button.clicked.connect(self.handleButton)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.button)
def handleButton(self):
p1 = multiprocessing.Process(target=calc, args=(q,))
#q = q.put(x)
p2 = multiprocessing.Process(target=calc_calc, args =(q, qq,))
#qq = qq.put(z)
p3 = multiprocessing.Process(target= calc_end, args =(qq, qqq,))
p1.start()
p2.start()
p3.start()
p1.join()
p2.join()
p3.join()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = Window()
#multiprocessing queue 1
q = multiprocessing.Queue()
#multiprocessing queue 3
qq = multiprocessing.Queue()
#multiprocessing queue 3 (aktuell nicht belegt)
qqq = multiprocessing.Queue()
window.show()
sys.exit(app.exec_())