Я реализую и основываюсь на воспроизведении опыта на жестких дисках (Reinforcement Learning) в Python, сохраняя массивы в numpy и используя потоки для выборки пакетов с жесткого диска, чтобы избежать замедления основного потока (алгоритмов обучения).
Использование простых функций numpy.save () и numpy.load (), кажется, работает достаточно быстро для меня, как в течение первого часа или около того, сохраняя до 30000 событий (из ожидаемого общего количества 1000000), основные потоки не показывает никакого замедления, которое я профилировал со временем настенных часов (время на получение мьютекса не тратится).
Однако через некоторое время время выборки событий с жесткого диска значительно увеличивается, и основной поток ожидает до 500 миллисекунд в ожидании следующей партии.
Это поведение совершенно чуждо мне, но я проверял его несколько раз и на нескольких компьютерах, и результаты были согласованы.
Я понимаю, что описание проблемы расплывчато, но мне трудно описать проблему, которую невозможно понять. Любые указатели на причины этого замедления с течением времени будут высоко оценены.
Спасибо!