Читаем Написание скриптов для Blender 2.49 полностью

Тем не менее, существуют ситуации, где любое увеличение скорости весьма приветствуется. Из всех примеров, которые мы видели в этой книге, Pynodes, вероятно, наиболее интенсивные в вычислительном отношении, так как инструкции выполняются над каждым видимым пикселем в текстуре или шейдере, и часто даже много больше времени уходит на пиксель, если принять во внимание oversampling. Экономия нескольких миллисекунд от скрипта, который тратит меньше секунды на выполнение, не даст слишком многого, но экономия 20% времени рендера составит существенную экономию времени при рендере 500 кадров.

Ввод Psyco: Psyco - расширение Питона, которое пытается ускорять выполнение скрипта, компилируя часто используемые части скрипта в машинные инструкции, и сохраняя их для многократного использования. Этот процесс часто называется компиляция-на-лету (just-in-time compilation, JIT), и она родственна JIT-компиляторам на других языках, таких как Java. (Они аналогичны по концепции, но совершенно отличаются в реализации из-за того, что в Питоне динамическая типизация. Это никак не затрагивает разработчиков скриптов на Питоне.)  Важно то, что Psyco может быть использовано в любом скрипте без каких-либо изменений в коде, за исключением добавления нескольких строк.

Psyco доступен как бинарный пакет для Windows, и может быть скомпилирован из исходных кодов на других платформах. Полные инструкции доступны на вебсайте Psyco: http://psyco.sourceforge.net/.

Проверьте, что Вы устанавливаете версию, которая подходит вашей версии Питона, поскольку, хотя сайт указывает, что версия, скомпилированная для Питона 2.5 должна работать также для 2.6, она все еще может потерпеть неудачу, поэтому лучше использовать версию, специально скомпилированную для 2.6.

На сайте http://psyco.sourceforge.net/ я не смог найти бинарной версии Psyco для Питона 2.6 под Windows (в Линуксе-то его легко самостоятельно скомпилировать). Но Гугл помог — такая версия обнаружилась   здесь: http://www.voidspace.org.uk/python/modules.shtml#psyco.   Вполне рабочая. Ввиду фактического умирания проекта Psyco (в википедии написано, что его преемником является PyPy – странная штука «Питон-на-Питоне», в данный момент не слишком работоспособная), сомневаюсь, что он когда-нибудь заработает для 3-го Питона, и, соответственно, для новых версий Блендера. - прим. пер.

Итак, какое увеличение скорости мы могли бы ожидать? Это трудно оценить, но достаточно легко измерить!  Просто рендерите кадр и отмечайте время, которое потребовалось, затем импортируйте psyco в ваш код, рендерите снова и отмечайте различие. Если оно значимое, оставляйте в коде, в противном случае, Вы можете снова его удалить.

На следующей таблице указаны некоторые результаты для тестовой сцены, приведенной в psyco.blend, но ваши данные могут отличаться. Также заметьте, что тестовая сцена является довольно оптимистическим сценарием, так как большая часть оказалась покрыта текстурой, генерируемой Pynode. Если бы её было меньше, прирост в скорости бы уменьшился, но это дает оценку того, что возможно с Psyco. Показатель в два раза для важного кода легко достижим. В следующей таблице перечислены некоторые иллюстрирующие примеры времени расчёта:

Время в секундах

Нетбук

Без Psyco 52.7

С Psyco 26.3

Стационарный компьютер

Без Psyco 14.01

С Psyco 6.98

Включение Psyco

Следующий код показывает дополнительные строки, которые нужны для включения psyco в нашем ранее встречавшемся Pynode raindrops (капли дождя). Изменения указаны жирным шрифтом.

<... все остальные строки остаются прежними ...>

__node__ = Raindrops

try:

   import psyco

   psyco.bind(Raindrops.__call__)

   print 'Psyco configured'

except ImportError:

   print 'Psycho not configured, continuing'

   pass  

Так что, по сути, было добавлено только несколько строк после определения Pynode. Убедитесь, что вы щелкнули на кнопке Update (обновить) на Pynode, иначе код не будет перекомпилирован, и изменения не будут видны.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных