Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 29, 2011 14:14:43

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Cython оптимизация

Андрей Светлов
Может и так - но, думается, стоит еще поискать.
да, что-то все туманно.

Дело в том что это всё и есть узкое место - это такой большой один цикл, которой за счёт методов инлайн подстановок выглядит практически линейно. Т.е я хочу сказать что замена сотни строк питон-кода, даже самого критического, и даже на мгновенное исполнение, не даст общего улучшения даже на 5%.
т.е. если 95% (это всё - большой один цикл) кода ускорить в 100 раз это не даст ускорения даже на 5%, не может быть.

в таком случае нужно всю прогу писать на С/С++, и не извращаться с Cython

Офлайн

#2 Янв. 29, 2011 16:37:22

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Cython оптимизация

o7412369815963
в таком случае нужно всю прогу писать на С/С++, и не извращаться с Cython
Вот разумная мысль.



Офлайн

#3 Янв. 29, 2011 20:21:38

alexx11
От:
Зарегистрирован: 2010-05-13
Сообщения: 208
Репутация: +  0  -
Профиль   Отправить e-mail  

Cython оптимизация

o7412369815963
не может быть.
Не не может быть а внимательней надо читать, я другое имел ввиду.

o7412369815963
в таком случае нужно всю прогу писать на С/С++, и не извращаться с Cython
А вот на это я не готов, по той хотя бы причине что это не окончательный код, уверен потребуется модификация и поддержка, чего на Си, знаю по собственному опыту, делать очень не легко даже в своём коде уже через пару месяцев перерыва работы с ним.

Андрей Светлов
Как-то в финансовом софте профайлер показывал, что 50% времени тратится на работу со строками.
Думаете, эти операции нужно было ускорять?
Нет, их просто требовалось выкинуть. Заменив на более адекватные структуры данных.
Одна мелочь - у меня не финансовый софт, а скрипт для работы со строками, и “выкинуть” эти строки из него не представляется возможным. =)



Отредактировано (Янв. 29, 2011 20:32:00)

Офлайн

#4 Сен. 19, 2012 16:36:21

dvs
От:
Зарегистрирован: 2006-05-22
Сообщения: 176
Репутация: +  3  -
Профиль   Отправить e-mail  

Cython оптимизация

Вот ещё интересный ускоритель Питона:
Нумба http://numba.pydata.org/

Numba is an Open Source NumPy-aware optimizing compiler for Python
sponsored by Continuum Analytics, Inc. It uses the
remarkable LLVM compiler infrastructure to compile Python byte-code to
machine code especially for use in the NumPy run-time and SciPy
modules.

Not all Python syntax is supported, currently. And long-term,
the best that will be done with some Python constructs is to
eliminate the “interpreter”. Numba is going to work well first with
NumPy arrays that are large arrays of typed information.

If you are looking for a full Python compiler to handle all Python syntax,
look at PyPy, ShedSkin, Nutika, or other projects.

Numba is also not a tracing jit. It *compiles* your code before it gets
run using type information you provide in the decorator.

Dependencies:

* LLVM 3.1
* llvm-py (from llvmpy/llvmpy fork)
* numpy
* Meta (from numba/Meta fork)



Отредактировано dvs (Сен. 19, 2012 16:44:51)

Офлайн

#5 Сен. 19, 2012 20:33:34

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Cython оптимизация

Как-то уж очень абстрактно. Может вы опишете чего со строками надо сделать, пусть не очень точно но что-то. Какой алгоритм применили?
Неплохо понять какое быстродействие вам нужно, т.е. Чем оно ограничено? Я часто встречаю коды которые работают сутками и никого это не беспокоит.



Офлайн

#6 Сен. 20, 2012 06:05:19

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Cython оптимизация

Вы бы хоть на дату сообщения посмотрели, что ли :rolleyes:



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version