За последние 24 часа нас посетили 25782 программиста и 1727 роботов. Сейчас ищут 922 программиста ...

Ресурсоемкость функции str_replace

Тема в разделе "Прочие вопросы по PHP", создана пользователем str_replace, 13 апр 2008.

  1. str_replace

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

    С нами с:
    13 апр 2008
    Сообщения:
    3
    Симпатии:
    0
    Есть необходимость в переработке дизайна, генерируемого на стороне другого сервера. Сделать это можно лишь при помощи функции str_replace. Собственно, так и сделал (~220 вызовов этой функции при генерировании страницы).

    Данные нагрузки на сервер очень насторожили. Совпадение или следствие злоупотребления этой функцией?
    Зависит ли ресурсоемкость функции от ее аргументов (исходного и исправленного кода)?

    Спасибо.
     
  2. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    А померять самому скорость не судьба?! Создай два массива по 220 элементов, прогони их через стр_реплейс и посмотри время.
     
  3. str_replace

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

    С нами с:
    13 апр 2008
    Сообщения:
    3
    Симпатии:
    0
    К сожалению, собственные познания в PHP носят крайне ограниченный характер :(. Задача непосильная :(.
     
  4. Anonymous

    Anonymous Guest

    str_replace не стоит вызывать многократно. Выгодней выполнить замену один раз, передав ей в аргументах массивы.
     
  5. str_replace

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

    С нами с:
    13 апр 2008
    Сообщения:
    3
    Симпатии:
    0
    Итак, вот результаты замеров:
    время генерации без реплэйса:
    0.030556 секунды
    0.000816 секунды
    Разницы ~35-40 раз, но 0.03с — тоже отличный результат, не так ли?
     
  6. Alligator

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

    С нами с:
    13 апр 2008
    Сообщения:
    1
    Симпатии:
    0
    еще стоит попробовать заменить str_replace на strtr (~вызвать один раз - передав ему массив)
     
  7. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Alligator
    Плохая мысль, с массивами она довольно сильно тормозит.

    str_replace
    У str_replace можно передать не только "что заменить, на что, где" в виде строк, но и массивы по типу "масив того, что надо заменить, массив того на что надо заменить, где"