Сравнение Python и решений для Perl Широкой проблемы Средства поиска

Возможно, этот путь вам подойдет: фиксированная ширина для встроенного блока и анимации для уменьшения или увеличения его ширины

div {
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;
  animation: example 2s linear 0s infinite alternate;
}

@keyframes example {
  from {
    width: 0;
  }
  to {
    width: 150px;
  }
}
<div>some text</div>

8
задан Constantin 8 October 2008 в 05:21
поделиться

4 ответа

Лучше regex реализация жемчуга одна часть истории. Это не может объяснить однако, почему реализация жемчуга масштабируется лучше. Различие становится больше с большим количеством процессоров. По некоторым причинам реализация Python имеет проблему там.

10
ответ дан 5 December 2019 в 08:55
поделиться

Реализация Perl использует mmap системный вызов. То, что делает тот вызов, устанавливают указатель, чтобы к процессу, кажется, нормальный сегмент памяти или буфера к программе. Это отображает содержание файла к региону памяти. Существуют преимущества действий выполнения этого по сравнению с нормальным файлом IO (чтение) - каждый - то, что нет никаких вызовов библиотеки пространства пользователя, необходимых для получения доступа к данным, другой - то, что часто существует меньше необходимых операций копии (например: движущиеся данные между ядром и пространством пользователя).

Строки Perl и регулярные выражения являются 8-разрядным базирующимся байтом (в противоположность utf16 для Java, например), таким образом, собственный 'тип символов' Perl является тем же кодированием отображенного файла.

То, когда механизм регулярного выражения затем воздействует на mmap, поддержало переменную, это непосредственно получает доступ к данным файла через mamped регион памяти - не проходя функции IO Perl или даже функции IO libc.

mmap, вероятно, в основном ответственен за различие в производительности по сравнению с версией Python, пользующейся нормальными библиотеками Python IO - которые дополнительно представляют издержки поиска разрывов строки.

Программа Perl также поддерживает-J для параллелизации обработки, где oepen "-|" вызывает ветвление (), где дескриптор файла в родителе к stdout ребенка. Дочерние процессы сериализируют свои результаты к stdout, и родитель десериализовывает их, чтобы скоординировать и суммировать результаты.

1
ответ дан 5 December 2019 в 08:55
поделиться

Perl в большой степени оптимизирован для обработки текста. Существует столько факторов, что трудно сказать, что является точным различием. Текст представлен полностью по-другому внутренне (utf-8 по сравнению с utf-16/utf-32), и механизмы регулярного выражения полностью отличаются также. Механизм регулярного выражения Python является пользовательским и не так используемый как жемчуг один. Существует очень немного разработчиков, работающих над ним (я думаю, что это в основном не сохраняется) в отличие от того Perl, который является в основном "ядром языка".

После того, как весь Perl является языком обработки текста.

5
ответ дан 5 December 2019 в 08:55
поделиться

Реализация Perl использует системный вызов mmap.

Это. Это позволяет избежать копирования буфера и обеспечивает асинхронный ввод-вывод.

0
ответ дан 5 December 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: