А, вот оно что. После установки этой штуки, команду WC можно будет вызывать из PHP через EXEC()? Упрощенно, можно сказать, что это что-то типа лог-файла и нужно периодически анализировать за кокой период и сколько строчек он приобретает. А что касательно php, выкладываю результаты краш-тестов Тестовый файл размером ~7ГБ. Компом выступал слабенький ноут с 1ГБ оперативы минус 250МБ на видео. n=204928917executing 371.866298914 sec. - мой вариант n=204928917executing 362.909919977 sec. - мой вариант с заменой $n=$n+1; на $n++; n=204928916executing 258.105340958 sec. - вариант Asik Вариант MiksIr за 10 мин работы результата не выдал (может в скрипте где-то ошибочка). Итого: скрипт от Asikа c солидным отрывом лидирует по скорости
Да. И т.к. это та-же утилитка что в юниксах, просто перекомпиленая под винду, то при переносе на "постоянное место жительства" не потребуется вносить изменений.
Ожидаемый результат. Ещё раз акцентирую - скорость разбора строк много меньше скорости чтения с диска, даже в PHP. Ошибка в использовании fgetc(). Даже в хороших компиляторах посимвольное чтение с диска ну ооочень медленно, - маленький буфер байт в 500 увеличивает скорость чтения файла на порядок/два. Поэтому ... Правильно, ибо использует буфер в мегабайт. Для масимальной оптимизации можно поиграться размером буфера.
Благодаря тебе установил coreutils и заюзал wc. Результат: ~245сек (напомню у php скрипта Asika ~258сек). Честно говоря не ожидал, думал эта команда сразу выдает результат, а она оказывается тоже не знает сколько строк в файле и поэтому напряженно считает. А вообще, спасибо за наводку на это расширение консоли винды. Прикольно. Еще чуть-чуть и будет как линуксовая Да, так и есть, десктоп с ним раза в два быстрее расправляется
Ну все-же винда не родная среда для этих утилит. Под никсами они заметно шустрее. Плюс в том, что не надо потом переделывать. А про сразу - ну как она узнает? Только посчитать.
Хочу поделиться своим открытием Оказывается у команды wc есть ускоритель! Если запустить ее с параметром wc -l то она подсчитывает строки в этих громадных файлах буквально за секунды!