У меня есть много файлов на диске, которые нужно читать, первый вариант использует многопоточность, он отлично работает на SSD. (когда потоки заблокированы IO, он отпустит GIL)многопоточность python читает обход буфера памяти только для чтения GIL
Но я хочу добиться такой же или более быстрой скорости без SSD, поэтому я предварительно загружаю их в память (например, в хранилище в dict), и каждый поток будет читать каждый файл содержимое из памяти. К сожалению, возможно, из-за GIL существует блокировка в dict, поэтому его скорость еще медленнее, чем загрузка файлов с SSD!
Итак, мой вопрос в том, что есть ли какое-либо решение, которое может создать буфер памяти только для чтения без блокировки/GIL? как ramdisk или что-то еще>
Если вы действительно хотите как можно больше скорости, как насчет переписывания вашей программы (или, по крайней мере, ее критически важных частей) на C или C++ или на какой-либо другой полностью скомпилированный язык? Тогда у вас не будет GIL, а также никаких накладных расходов на переводчика, поскольку вы будете запускать собственный исполняемый файл. –