В таком случае какую реализацию предлагаешь ты? В 1 поток R/W делать как-то стрёмноОк, я попробую подругому
IOCP это просто евентлуп, как epoll в Linux
Для того, что бы читать асинхронно файлы не обязательно создавать порт и использовать IOCP
Ты меня видимо немножко не понял
Я не сравниваю подход с тонной тредов, которые просто спят, с асинхронным, я говорю про другое
Обычно люди не заморачиваются и ставят на чтение сразу кучу файлов, вот как они у них в очереди идут, так и пихают
И одновременно еще и на запись такую же кучу
В ядре Windows есть очередь файловых операций, Windows выделяет время помнемножку каждому элементу этой очереди
по-кругу, и эти операции будут там висеть, пока не заполнится/опустошится запрошеный буфер какой-то операции
В это время механический диск будет половину времени ездить туда сюда, то в начало, то в конец
Мы же знаем, что физически файлы на диске лежат не в том порядке, как в каталоге
С SSD тоже будет не супер, потому что такое чтение будет инвалидировать read ahead кэш и толку от него не будет
Скорость алгоритма на коре, красивые бенчмарки, это все супер, но все это все равно упирается в диск и стратегию работы с очередями чтение\запись
И там треть скорости и хоронится