|
| |
| 1.1, bm, 15:00, 30/11/2004 [ответить] [смотреть все]
| +/– |
А не удобнее ли использовать для замены регулярные выражения вроде:
$str =~ s/h/j/g;
Заменит во всей строке символы h на j.
|  | | |
| 1.2, Игорь, 06:34, 02/12/2004 [ответить] [смотреть все]
| +/– |
разбить или выделить:
($str1, $str2, str3 ...) = split (":", $string);
замена:
$string =~ s/xaker/maker/g;
|  | | |
| |
| 2.3, Maxim Chirkov, 09:32, 02/12/2004 [^] [ответить] [смотреть все]
| +/– |
>разбить или выделить:
>($str1, $str2, str3 ...) = split (":", $string);
Господа, речь идет про исключение лишних копирований в памяти. На досуге, возмите в качестве $string строку размером несколько Мб и посмотрите сколько будет занимать процесс perl в памяти после split и "=~" (кстати сказать, простейшие замены с совпадением размера память лишнюю не потребляют).
|  | | |
| |
| 3.4, Игорь, 06:45, 03/12/2004 [^] [ответить] [смотреть все]
| +/– |
При таких объемах это естественно.
Perl для небольших объемов расчитывался.
Выход: написать на си подпрограмму или скомпилить скрипт в бинарник
perl2bin
|  | | |
| |
| 4.6, Maxim Chirkov, 10:40, 03/12/2004 [^] [ответить] [смотреть все]
| +/– |
>При таких объемах это естественно.
>Perl для небольших объемов расчитывался.
Лишние копирования сильно паразитируют в циклах и для маленьких строк.
>Выход: написать на си подпрограмму
Не всегда критический участок поддается такому преобразованию, когда напирмер, используются хэши или регекпсы.
> или скомпилить скрипт в бинарник perl2bin
При цикличных операциях выйгрыша не будет, так как скрипт уже переведен в псевдокод.
|  | | |
| 4.8, achmed, 15:57, 13/12/2004 [^] [ответить] [смотреть все]
| +/– |
даже если писать на компилируемом языку (например Си),
скорость при использовании регулярных выражений (библиотек
много разных) будет медленнее чем при использовании
стандартных функций для работы со строками, за удовство
приходится платить скоростью. |  | | |
|
|
|
|
|
| Ваш комментарий |
|
|
|