По моему опыту, редко нужно оптимизировать с помощью C. Я предпочитаю выявлять узкие места и полностью улучшать алгоритмы в этих областях на Python. Использование хеш-таблиц, кэширование и, как правило, реорганизация ваших структур данных в соответствии с будущими потребностями имеет удивительный потенциал для ускорения вашей программы. По мере развития вашей программы вы получите лучшее представление о том, какие материалы могут быть рассчитаны заранее, поэтому не бойтесь возвращаться назад и переделывать свои хранилища и алгоритмы. Кроме того, ищите возможности убить «двух зайцев», например, сортировать объекты по мере их рендеринга, а не выполнять огромные сортировки.
Когда все работает, насколько вам известно, я бы подумал об использовании оптимизатора, например Psyco . Я буквально увеличил производительность в 10 раз, просто используя Psyco и добавив одну строчку в свою программу.
Если ничего не помогает, используйте C в нужных местах, и вы получите то, что хотите.