Производительность Python с модулями c

У меня есть задание каждую неделю курса по эвристическому решению проблем. Задания занимают как минимум 3-4 дня моей недели (я хочу сократить это время). Вопросы, задаваемые в задании, требуют большого объема вычислений, и мы должны дать лучший ответ в течение времени выполнения программы 2 минуты. Я начал делать задания в C ++ для хорошей производительности во время выполнения. Хорошо. Но мне бы пришлось использовать указатели и т. Д., Чтобы не создавать копии данных везде. Но обычно это приводит к увеличению времени отладки. Поэтому я перешел на Java для моего следующего назначения. Немного низкая производительность по сравнению с с ++, но экономит мои выходные.

Я профилировал свою Java-программу и увидел, что одна функция занимает 95% времени процессора. В этом контексте я хочу спросить, если я использую python для написания своего решения по назначению, профилирую его, выясняю, какие функции используют больше всего времени процессора, реализую их с помощью c-модулей … могу ли я сделать что-то лучше? Я могу сократить время разработки (bcz, лично я считаю, что разработка на python быстрее), и, поскольку я буду реализовывать функции, которые занимают 95% процессорного времени в c-модулях, я не должен снижать производительность.

Это то, что я могу попробовать? Я могу попробовать это (python + c-modules) и проверить сам (не обращаясь за помощью здесь), но если я потерплю неудачу, у меня может не быть времени повторно реализовать все мое назначение в c ++ или java.

0

Решение

Если вам нужна производительность, вы должны знать, что Python в 10-100 раз медленнее, чем C ++. В зависимости от того, какую производительность вы ищете, вы можете обойтись, оптимизировав свой код, или использовать некоторые сторонние библиотеки для обработки чисел, как грубые.

Использование Cython было бы вариантом для рассмотрения, но вы искали сокращение времени разработки с помощью Python? Использование C-модулей представило бы большую сложность и Cython в любом случае имеет другой синтаксис.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]