# nemerle -- better an egg today than a hen tomorrow
От: мыщъх США http://nezumi-lab.org
Дата: 12.01.14 11:34
Оценка:
...обращаясь к nemerle community

я очень люблю питон. просто обожаю. на нем я продуктивен как собака баскервилей. но все чаще и чаще замечаю, что вместо решения насущных проблем, я решаю проблему производительности питона, извращаясь самым непотребным образом. в частности, задача разбивка файла на строки это десяток функций, опирающихся на string.find с концепций головы и хвоста (подразумевается, что файл может использовать \x0A, \x0D, \x0D\x0A в качества маркера конца строки, в том числе и все три представления внутри одного файла).

Регулярное выражение (\x0D\x0A|\x0A|\x0D|$) работает не быстрее асфальтоукладчика, который толкают по бездорожью бурлаки. Библиотеки типа re2 равно как и pypy не позволяют добиться сколь-нибудь существенного увеличения производительности.

У меня есть два пути: а) реализовать примитивы на Си, вызываемые из питона; б) забить на питон и выбрать другой язык.

И вот перед началом довольно масштабного проекта я задумался о nemerle. Надеюсь, это послужит рекламой/бустером для nemerle. Отсюда к сообществу разработчиков у меня есть пара вопросов:

1) будет ли оно работать под Linux и Mac OS? Если да, то какие компоненты необходимо устанавливать?

2) производительность. главным образом интересует с какой скоростью код на nemerle может распарсить хотя бы такой простой формат как pdf. поскольку я не знаком с языком, то пробовать оценивать производительность программы, написанной в процессе изучения языка, я не берусь. если вас не затруднит, не могли бы вы написать скелет очень простого парсера для pdf наподобие этого: http://www.gnupdf.org/Introduction_to_PDF

все парсить не обязательно. Достаточно выполнить разбивку на объекты и потоки, т.е. парсер должен возвращать что-то типа этого:

x y obj # возвращаем номер объекта (x, y)
<<
# возвращаем в сыром виде то, что в угловых скобках
>>
stream
# возвращаем что между stream и endstream, обрасывая первый и последний переносы строки (контент может содержать нули)
endstream
endobj

в свою очередь обещаю продвигать nemerle всеми силами

PS. если у вас нет времени на это, то просьба написать скелет, возвращающий позиции x y obj, начинающиеся с новой строки. заранее спасибо.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.