Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
1

Варианты оптимизации "разгрузки" системы от посторонних вычислений

09.03.2014, 15:36. Показов 705. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добра Вам! Пишу игровой движок. В виду специфичности рендера массив пикселов генерится в оперативной памяти. Для оптимизации необходимо быстро загонять этот массив на экран, запретить прорисовку остальных окон(полный FULLSCREEN) и, возможно, есть какие-то ещё варианты оптимизации "разгрузки" системы от посторонних вычислений? Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2014, 15:36
Ответы с готовыми решениями:

Какие есть варианты оптимизации скрипта?
Есть такая таблица CREATE TABLE `main_data` ( `date_work` datetime NOT NULL, `phone`...

Оценить код. Предложить варианты оптимизации.
Если это "говнокод", то помогите исправить, как его укоротить private int Peshka(int Y, int X,...

Ознакомьтесь с кодом, укажите на ошибки, предложите варианты оптимизации
Всем привет! Дали задание: укажите на ошибки, предложите варианты оптимизации. Помогите,...

Прошу подсказать варианты оптимизации при работе с БД MySQL
Добрый день! Проект пишется в связке Visual Studio + MySQL. Пример БД: Из-за того что имена...

6
Заблокирован
Автор FAQ
09.03.2014, 15:41 2
Рисуй в совместимом контексте, на целевой контекст пикселы переноси с помощью BitBlt либо StretchBlt
0
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
09.03.2014, 19:53  [ТС] 3
Я так и делал - скорость не плохая, но хотелось бы максимально возможную.
OpenGL может справиться с выводом из оперативной памяти на экран быстрее, чем BitBlt, по идее?
Стоит ли прикручивать целую библиотеку для использования единственной функции отрисовки или прироста не будет или не значительный?
Собственно, я могу и сам проверить скорость, но обитатели форума наверняка уже изобретали эти велосипеды, окучивали все возможные грабли. Был бы рад, чтобы Вы сэкономили моё время.

Добавлено через 2 минуты
И если эффект от GL будет, то glDrawPixels - лучший вариант или есть ещё более быстрая альтернатива? Прошу поделиться опытом.
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
09.03.2014, 20:42 4
Не знаю насчёт скорости, но glDrawPixels в новых версиях OpenGL убрали. Более универсальный способ - это использовать изображение как текстуру.
Также не знаю насчёт скорости, но ещё вариант - это layered windows и UpdateLayeredWindow.
0
Заблокирован
Автор FAQ
09.03.2014, 20:56 5
не будет никакой опен соурс работать на наивной оси мелкософта быстрей ,чем нативное апи того же мелкософта
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
09.03.2014, 21:12 6
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Для оптимизации необходимо быстро загонять этот массив на экран, запретить прорисовку остальных окон(полный FULLSCREEN) и, возможно, есть какие-то ещё варианты оптимизации "разгрузки" системы от посторонних вычислений?
Единственный реальный вариант - использовать аппаратное ускорение и
ресурсы GPU. Плюс всякие SSE/MMX. А GDI и software rendering - это,
читай, прошлый век, сама Windows "старается" его не использовать,
уходя в сторону всяких Direct2D, например. Ибо ме-е-е-дленно...
0
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
09.03.2014, 21:55  [ТС] 7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не будет никакой опен соурс работать на наивной оси мелкософта быстрей ,чем нативное апи того же мелкософта
Согласен. Ибо то ли криворукость помешала, то ли вспышки на Солнце, но оказалось, что SetDIBitsToDevice более чем в 10 раз быстрее OpenGL...хотя, возможно, дело в железе. Например формат моего DIBa соответсвует формату карты(?) Может действительно удариться в формат карты и генерировать изображение DDB, чтобы отказаться от лишних преобразований? И как именно работать с DDB, я не до конца понимаю, для вывода DDB используются те же функции?

Прошу прощения за "миллион вопросов", но мозг уже кипит от кучи прочтённого и это барахло тормозит понимание простых(по видимому) вещей.

Добавлено через 8 минут
Цитата Сообщение от Убежденный Посмотреть сообщение
Единственный реальный вариант - использовать аппаратное ускорение и
ресурсы GPU.
То же согласен. Но есть пара "но". Распараллеливание алгоритма достигается довольно просто, но внутри алгоритма есть условия(достаточно не мало). К тому же, думаю, что перенос на GPU - это уже скорее оптимизация, которая обязательно будет иметь место, но пока нужно хотя бы реализовать работающее приложение с более-менее приемлемой скоростью.
0
09.03.2014, 21:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2014, 21:55
Помогаю со студенческими работами здесь

Предложить варианты оптимизации для готовой программы, находящей корни квадратного уравнения
Здравствуйте уважаемые, будьте так любезны проверьте код. вроде работает как надо, но смущает...

Оцените программу, предложите варианты для оптимизации и оцените читабельность кода
Доброго времени суток. Я студент и начал изучать С++ по специальности. Вот столкнулся с задачей,...

Не выводятся все варианты восстановления системы
Помогите. Зашёл в варианты восстановления но не высвечивает ничего кроме восстановления запуска. В...

Утилиты, проги и все для оптимизации системы
Добрый вечер, господа. Хотел бы спросить у вас: Какие проги, утилиты действительно помогут...

Сервер - Java, Клиент - VB6 - основные варианты построения системы
Подскажите, пожалуйста, какие могут быть наиболее реальные варианты построения клиент-серверной...

Варианты обновления логистики, процессора или системы оперативной памяти
Что это: Варианты обновления логистики, процессора или системы оперативной памяти - значит?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru