Я программирую на языке C. Иногда нам приходится читать большие данные из файлов, для которых мы обычно используем системные вызовы fread или read, что означает либо потоковый ввод-вывод, либо ввод-вывод системного вызова.
Я хочу спросить, если мы читаем такие большие данные, а затем вычисляем размер блока и читаем в соответствии с этим, поможет ли это нам как-то эффективно читать его или нет?
Я знаю, что чтение через системные вызовы может сделать его медленным, и есть другие условия, например, если нам приходится иметь дело с сетевыми сокетами, тогда мы должны использовать их, вместо использования потокового ввода-вывода, это даст нам оптимизированные результаты. Точно так же мне нужны некоторые советы и приемы для чтения больших данных из файлов и вещей, о которых нужно позаботиться.
Кроме того, если mmap может быть более выгодным, чем эти обычные операции ввода-вывода, уточните, пожалуйста, в каких ситуациях это может быть?
Платформа: Linux, компилятор gcc