Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
php fread
|
|||
|---|---|---|---|
|
#18+
вопрос простой. ктото может обяснить что написано в документации. ================ fread() читает до length байт из файлового указателя handle. Чтение останавливается как только было достигнуто одно из следующих условий: было прочитано length байт достигнут EOF (конец файла) стал доступен пакет или произошел таймаут сокета (для сетевых потоков) если читаемый поток является буферизованным и не представляет собой обычный файл, то за один раз максимум читается количество байт, равное размеру одной порции данных (обычно это 8192), однако, в зависимости от ранее буферизованных данных размер возвращаемых данных может быть больше размера одной порции данных. ============ интересует сторока остановиться чтение если пакет стал доступен. Это как понимать? и вопрос в догонку. если читаеться файл (оба варианта - локальный/удалённый) на что может повлиять размер чтения. ну скажем читаю по 4 байта? и вообще как узнать, какими порциями оптимальней читать. Обработка скажем такая. читаю из файла порцию, применяю к ней операцию побитовое отрицание, пишу в другой файл(локальный) вот при каком размере блока для чтения будет оптимальная производительность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 11:06 |
|
||
|
php fread
|
|||
|---|---|---|---|
|
#18+
При получение данных через сокет - данные буферизируются. Пока сокет не забуферизирует н-ое количество байт, он не отдаст их функции fread() (пакет данных не доступен). Как только сокет сочтет, что буфер заполнен - пакет данных в буфере становится доступным для вычитывания функцией fread(). Проблема в том, что если в буфер сокета пришло МЕНЬШЕ данных, чем указано во втором параметре fread() то функция не станет ждать и вычитывать остальные нехватающие данные. Именно это и означает, что функция fread() завершает чтение, как только "стал доступен пакет" независимо от объема этого пакета. Поэтому при чтении из сокета принято вручную в цикле контролировать объем вычитанной информации и дочитывать, если пришло меньше, чем надо. Либо использовать специальные функции для работы с потоками типа http://www.php.net/manual/en/function.stream-get-meta-data.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 11:39 |
|
||
|
|

start [/forum/topic.php?fid=23&gotonew=1&tid=1463638]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
14ms |
get first new msg: |
8ms |
get forum data: |
4ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 445ms |

| 0 / 0 |
