Как автоматически оптимизировать приложение Python? - PullRequest
1 голос
/ 11 сентября 2011

У меня есть сложное приложение на сервере Python, основанное на пакетной обработке. Я хочу, чтобы это приложение работало как можно быстрее. В этом приложении, вероятно, есть что-то вроде 100 целочисленных констант, которые как-то влияют на производительность приложения. Это может быть что-то вроде начального размера словаря , устанавливающего ограничения памяти внешних программ.

Я хотел бы, чтобы программа-оптимизатор изменила эти 100 целочисленных значений и выполнила тысячи тестов за ночь и выяснила, какой набор параметров должен завершить программу Python в кратчайшие сроки.

Существует ли такая вещь? Я полагаю, что я мог бы как-то построить это, используя инструкцию EXEC и функцию replace для изменения целых чисел.

1 Ответ

2 голосов
/ 11 сентября 2011

Если влияние каждой переменной не зависит от других переменных, вы можете сделать это с помощью сценария, чтобы оптимизировать каждую переменную по очереди ... если каждая переменная может принимать k значений и существует n переменных, это O ( пк). Если переменные могут влиять на влияние друг друга на производительность совершенно произвольным образом, вам придется перечислять и тестировать все O (k ^ n) присваиваний. Если вы находитесь где-то посередине, это усложняет описание алгоритма.

Что касается механики, как только вы выясните, какие конфигурации имеют смысл (как описано выше), это простой скрипт / программа, использующая, например, Exec или время должно работать. Даже если инструмент существует, вам все равно понадобится ответ на вышеприведенный вопрос, чтобы избежать решения о грубой силе O (k ^ n) ... или признать, что это лучшее, что вы можете сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...