Вопрос по строковым функциям ПХП

1 23
s91
На сайте с 13.04.2009
Offline
88
s91
#21

ewg777, не оптимальный способ. 5 проходов по всему тексту(для каждого из набора символов) - это замедлит работу этого куска кода минимум в 5 раз от возможного, а если предложения длинные то может и в 50-100 раз.

Такими темпами никакого процессора на хостинге не напасешься))

Больше доверия вызывает preg_match

Не бывает белой и черной оптимизации. Бывает только обман и разные способы его реализации
W
На сайте с 10.05.2009
Offline
114
#22

ewg777

Вы хотите сказать что это будет работать быстрее прегмача? ню-ню...

Может тест производительности провести, дабы даказать что ваш пример работает на порядок быстрее, а? )))

Если уж решитесь, то я бы вам посоветовал бы развернуть цикл, или хотябы в фор поставить вместо форичь, форисчь кстати работает медленнее обычного фора, если уш зашел разговор о производительности...

ewg777
На сайте с 04.06.2007
Offline
225
#23
wolfston:
ewg777
Вы хотите сказать что это будет работать быстрее прегмача? ню-ню...
Может тест производительности провести, дабы даказать что ваш пример работает на порядок быстрее, а?

Для чего так извращаться? Я предложил наглядный и легко модифицируемый вариант, а то что регулярки быстрее - может быть так.

то я бы вам посоветовал бы развернуть цикл, или хотябы в фор поставить вместо форичь, форисчь кстати работает медленнее обычного фора

Для нескольких миллионов операций - малая часть секунды.

Вспомнилось:

не подскажете почему у меня оператор $i++; выполняется полсекунды?
....
Ах да.. там же еще идет инклуд всего ZF и коннект к базе... сейчас посмотрю - может это не $i++; все-таки тормозит...

foreach нагляднее for, работающего с массивом.

s91
На сайте с 13.04.2009
Offline
88
s91
#24

Почему-то вспомнилось, когда на новых прцессорах сделали, что супербыстрая ранее комманда на ассемблере inc eax стала работать медленнее add eax,1

Как раз попал на эту модификацию, когда еще писал проги на ассемблере, и нужно было маленький цикл из нескольких миллионов итераций, всего-то в 1000 строк, нужно было ускорить в 100 раз. И одна операция умножения выполнялась в 50 раз медленее чем остальные 999 строк.

Это так к слову, наверное мало кто меня поймет.

ewg777
На сайте с 04.06.2007
Offline
225
#25
wolfston:
ewg777
Вы хотите сказать что это будет работать быстрее прегмача? ню-ню...
Может тест производительности провести, дабы даказать что ваш пример работает на порядок быстрее, а? )))
Если уж решитесь, то я бы вам посоветовал бы развернуть цикл, или хотябы в фор поставить вместо форичь, форисчь кстати работает медленнее обычного фора, если уш зашел разговор о производительности...

$items = array('?', '!', '.', '!?', '...');

$to = strlen($str);
for ($i=$to; $i>0; $i--) {
if (in_array($str{$i}, $items)) {
$str = substr($str, 0, ++$i);
break;
}
}
B
На сайте с 11.05.2009
Offline
85
#26

Остановился пока на этом:

preg_match('|(.+[\.\?\!]).+?|', $text, $matches);
$need = $matches[1];
Вооот
1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий