Обработка кэшей для python IO тестов - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь сделать несколько тестов для различных способов хранения информации в программе python (двоичный файл, сжатый контент и т. Д. c). Я хотел бы получить точные данные о времени, которое фактически требуется для записи и чтения записей, поэтому я хочу избежать любого вида кэширования, которое могло бы оптимизировать тот факт, что я обращаюсь к файлам сразу после их создания, но в которых я не мог полагаться на производственные цели и может закончить тем, что запутает их метрики для моего сравнения.

Я нашел таким образом очистки кэшей / памяти и подумал, что могу просто запустить эти команды из python между записью и чтением всех файлов. Однако для подкачки памяти мне пришлось выполнить команды sudo:

sudo swapoff -a && sudo swapon -a

, что, я думаю, все еще возможно, но усложняет введение его в сценарий python , но для кешей мне нужно не только sudo и добавить некоторые дополнения, которые я даже не уверен, зачем они нужны (получал Permission denied пришлось добавить sh -c , хотя это моя рабочая станция , я не s sh -ing):

sudo sync; sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

Еще хуже, я получаю Segmentation fault (core dumped) за простой запуск команды с терминала.

Кажется, я не могу найти никакого хорошего и понятного объяснения того, как справиться с этим, и у меня заканчиваются идеи. Конечно, я не первый, кто хочет запустить тест IO производительности «чистым» способом, есть ли более простой способ сделать это в python, которого мне не хватает?

...