Яндекс начал формирование коллекции своих открытых проектов
В настоящее время в GitHub перенесены следующие проекты:
- PIRE (Perl Incompatible Regular Expressions) - библиотека с реализацией регулярных выражений, оптимизированных для выполнения большого числа проверок для огромных объёмов текста. Код PIRE был разработан для поискового робота и отличается очень высокой производительностью. Библиотека также прекрасно справляется с очень длинными регулярными выражениями, обработка которых не приводит к заметному понижению производительности.
Так как библиотека не поддерживает обратные ссылки и просматривает каждый символ только один раз, используя примерно 5 машинных инструкций на обработку символа, она может быть использована для выполнения задач реального времени. Ценой вышеописанных возможностей является достаточно ограниченная функциональность, позволяющая использовать только простые регулярные выражения.
При выполнении регулярного выражения ".*$" для файла размером 500 Мб скорость обработки данных в PIRE составляет 756,32 МБ/сек, в то время как библиотека RE2 от компании Google обрабатывает данные со скоростью 242,28 МБ/сек, а классическая библиотека pcre - 31,67 МБ/сек. При проходе более сложным регулярным выражением "ABCDEFGHIJKLMNOPQRSTUVWXYZ$" разрыв по скорости с RE2 уменьшается: PIRE - 755,98 МБ/сек, RE2 - 653,76 МБ/сек, pcre - 153,67 МБ/сек. При использовании выражения "(\d{3}-|\(\d{3}\)\s+)(\d{3}-\d{4})$": PIRE - 775,89 МБ/сек, RE2 - 423,76 МБ/сек.
- Xiva - компактный и быстрый асинхронный HTTP-сервер для реализации серверной части протокола WebSockets, используемого для инициирования определённых действий по сигналу с сервера. В настоящее время проект используется для обеспечения работы уведомлений о новых письмах в web-интерфейсе Яндекс.Почты. Xiva достаточно узкоспециализированный сервер, оптимизированный для выполнения только определённого круга задач (например, не поддерживает POST-запросы). В комплекте поставляется небольшое демонстрационное приложение на языке Python с реализацией web-чата.
- NwSMTP - быстрый SMTP прокси-сервер, принимающий на себя нагрузку и осуществляющий первичную фильтрацию перед передачей почты на основной почтовый сервер. Сервер может обеспечивать поддержку SSL, производить фильтрацию по чёрным спискам и DNSBL, управлять таймаутами, отфильтровывать сообщения по размеру и числу получателей, удалять и править заголовки, проверять SPF-записи, выполнять DKIM-верификацию, производить антиспам и антивирусные проверки. NwSMTP задействован в Яндекс.Почте. Пример файла конфигурации можно посмотреть здесь.
- Серия дополнений к Python-фреймворку Django:
- django_dust - реализация системы для одновременного сохранения загружаемых файлов на нескольких серверах (Distributed Upload STorage);
- django_errorlog - обеспечение сохранения логов о работе сервера в стандартном для Python виде;
- django_replicated - модуль с реализацией master-slave репликации между несколькими серверами всех SQL-операций.
Источник: http://www.opennet.ru/opennews/art.shtml?num=28625
|
0 | Tweet | Нравится |
|