Метод str.join
ожидает итерацию в качестве аргумента, и тем не менее accumulate
передает ему два аргумента для каждой итерации, отсюда и ошибка. Вместо этого вы можете использовать метод str.format
:
print(list(accumulate(s.split(), '{} {}'.format)))
Для отладки / профилирования графики попробуйте Nvidia PerfHUD
NVIDIA PerfHUD - это мощный инструмент для анализа производительности приложений Direct3D в реальном времени.
Существует также решение ATI, называется «GPU PerfStudio»
GPU PerfStudio - это инструмент анализа производительности в реальном времени, который был разработан, чтобы помочь настроить графическую производительность ваших приложений DirectX 9, DirectX 10 и OpenGL. GPU PerfStudio отображает в реальном времени данные API, драйверов и оборудования, которые можно визуализировать с помощью чрезвычайно гибких механизмов построения графиков и гистограмм. Профилируемое приложение может выполняться локально или удаленно по сети. GPU PerfStudio позволяет разработчику переопределять ключевые состояния рендеринга в реальном времени для быстрого обнаружения узких мест. Окно автоанализа можно использовать для выявления проблем с производительностью на различных этапах графического конвейера. Для использования GPU PerfStudio не требуется никаких специальных драйверов или изменений кода.
Вы можете найти дополнительную информацию и ссылки для скачивания здесь:
Вы разрабатываете для Windows? В таком случае избегайте использования Video for Windows, поскольку это ограничит вас описанным вами образом. Вместо этого используйте DirectX.
Не нужно гадать. Просто приостановите его несколько раз в среде IDE, и он точно покажет вам, чего он ждет.
Also, check out this article on FPS:
Basically it talks about the fact that a drop from 200fps to 190fps is negligible, whereas a drop from 30fps to 20fps is a MUCH bigger deal. For better performance measuring, you should be calculating frame time rather than FPS.
You never told us what your fps is or what the program is doing at all, so your "vast drop" might not be a big deal at all.
For DirectX, there is PIX for profiling the CPU and GPU operations. It can give very detailed info, and might be worth looking into.
Hope that helps!
Можно попробовать использовать dxprof (поиск в гугле). Это легкое приложение, которое рисует полосы в реальном времени, каждая строка соответствует одному событию DirectX (например, вызову отрисовки или копированию ресурса). Вы можете заморозить полосы и проверить стек вызовов, чтобы узнать, откуда исходит вызов отрисовки.