За последние 24 часа нас посетили 18100 программистов и 1699 роботов. Сейчас ищут 1515 программистов ...

Подсчет строк в большом файле

Тема в разделе "PHP для новичков", создана пользователем Namer, 18 мар 2011.

  1. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    А, вот оно что. После установки этой штуки, команду 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 солидным отрывом лидирует по скорости :)
     
  2. Shumomer

    Shumomer Активный пользователь

    С нами с:
    12 мар 2011
    Сообщения:
    194
    Симпатии:
    1
    Адрес:
    из вашего вображения
    Да. И т.к. это та-же утилитка что в юниксах, просто перекомпиленая под винду, то при переносе на "постоянное место жительства" не потребуется вносить изменений.
     
  3. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Ожидаемый результат. Ещё раз акцентирую - скорость разбора строк много меньше скорости чтения с диска, даже в PHP.

    Ошибка в использовании fgetc(). Даже в хороших компиляторах посимвольное чтение с диска ну ооочень медленно, - маленький буфер байт в 500 увеличивает скорость чтения файла на порядок/два. Поэтому ...
    Правильно, ибо использует буфер в мегабайт. Для масимальной оптимизации можно поиграться размером буфера.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Namer
    о! а затесть плс ++$n
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    на десктопе после дефрагментации этого файла у тебя в лучшем случае выйдет полторы минуты.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  7. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Благодаря тебе установил coreutils и заюзал wc.
    Результат: ~245сек (напомню у php скрипта Asika ~258сек).
    Честно говоря не ожидал, думал эта команда сразу выдает результат, а она оказывается тоже не знает сколько строк в файле и поэтому напряженно считает.
    А вообще, спасибо за наводку на это расширение консоли винды. Прикольно. Еще чуть-чуть и будет как линуксовая :)

    Да, так и есть, десктоп с ним раза в два быстрее расправляется :)
     
  8. Shumomer

    Shumomer Активный пользователь

    С нами с:
    12 мар 2011
    Сообщения:
    194
    Симпатии:
    1
    Адрес:
    из вашего вображения
    Ну все-же винда не родная среда для этих утилит. Под никсами они заметно шустрее. Плюс в том, что не надо потом переделывать. А про сразу - ну как она узнает? Только посчитать.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ssd надо
     
  10. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    спасибо, буду знать и учту.

    Да, придется покупать :) Ты себе уже купил? ;)
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нет. дома от него толку...
     
  12. asik

    asik Активный пользователь

    С нами с:
    12 июл 2007
    Сообщения:
    211
    Симпатии:
    0
    у меня дома ссд на медиацентре стоит =)
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ssd ssd рознь =)
     
  14. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Для медиацентров есть бесшумные модели HDD
     
  15. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    SSD через USB это медленнее чем HDD напрямую :)
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Namer
    ssd ssd рознь. а usb - дело десятое.
     
  17. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Хочу поделиться своим открытием :)
    Оказывается у команды wc есть ускоритель!
    Если запустить ее с параметром wc -l то она подсчитывает строки в этих громадных файлах буквально за секунды!