3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
|
1 | |
Тормозит поток, обрабатывая игровую физику30.09.2014, 12:00. Показов 3289. Ответов 46
Метки нет (Все метки)
В общем, такая проблема:
Пишу простенькую игру. Для обработки физики создал отдельный поток. Графика рисуется на форме Канвами в непрерывном цикле. пока запускаю в дельфи все прекрасно работает. но стоит только открыть игру как самостоятельное приложение физ. поток начинает выполняться оч. медленно. И получается слоу мо). Не взирая на приоритет потока. Смена приоритета не чего не изменила. Хотя иногда (очень редкий случай) запускается нормально и не глючит. Помогите пожалуйста решить проблему, ато я голову сломал в чем проблема!
0
|
30.09.2014, 12:00 | |
Ответы с готовыми решениями:
46
Дополнительный поток тормозит главный Нажатие кнопки тормозит фоновый поток считать только последнюю строку из файла не обрабатывая другие Обращение к переменной одной формы, обрабатывая событие на другой форме... |
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
|
08.12.2014, 20:46 | 21 |
0
|
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
|
08.12.2014, 20:58 [ТС] | 22 |
ну собсна вот
0
|
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
|
08.12.2014, 22:25 [ТС] | 23 |
Ну как, страшно?
Добавлено через 9 минут я тут подумал лучше возьмите все в полном сборе
0
|
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
|
08.12.2014, 22:33 | 24 |
Забавная игрушенция
И оформлена оригинально По теме могу сказать, что никаких тормозов обнаружить не удалось - все работает четко в любом режиме. Единственное, что у меня звук не работает и при возврате из игры в ее меню модуль UdxSoundManager выдает исключение, поэтому убрал все, что с ним связано. Кстати, этот модуль вполне может давать тормоза. Прилагаю ЕХЕшник (попробуй его у себя запустить) и проект без UdxSoundManager - скомпили его у себя и посмотри останутся ли тормоза.
0
|
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
|
08.12.2014, 22:39 | 25 |
Блин, звука не было, т.к. файлов звуковых нет, но все равно проверь вариант без UdxSoundManager.
Твой ЕХЕ у меня отлично работает без тормозов и со звуком. Еще тормоза антивирус может давать. Если есть, попробуй отключить.
0
|
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
|
08.12.2014, 23:17 [ТС] | 26 |
Антивирусами в принципе не пользуюсь. Спасибо за отзыв)) Модуль UdxSoundManager бестыже стырил из книги Есенина DirectX в Delphi. Да и там тоже рылся он просто упрощает пользование директсоундом, и тормоза давать там вроде нечему. Код у потоков не смотрел? мож там че накосячил? Посмотрел твой exe-шник, а зачем дрожание убрал? это как бы фишка была)
Добавлено через 7 минут Посмотрел твой exe-шник работает по шустрее но это только потому что у меня проц 1.5 Ггц. а вместе с UdxSoundManager отрезалось болшое количество плюшек) Добавлено через 7 минут Проверил когда игра работает в нормальном режиме используется 45 процентов ЦП, когда слоумо 6 процентов. Magic!
0
|
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
||||||
08.12.2014, 23:41 | 27 | |||||
Чтобы в нем разобраться надо больше времени.
Не очень понял как в процедуре DrawMEgaMeassage константам присваиваются другие значения и почему компилятор это пропускает:
Нашел нужную галку.
0
|
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
|
08.12.2014, 23:50 | 28 |
Еще один вариант:
Судя по всему, в конфигурации Release ты проект не компилил. Попробуй запустить это:
0
|
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
|
09.12.2014, 00:46 [ТС] | 29 |
нет не компилил.
0
|
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
|
09.12.2014, 00:57 [ТС] | 30 |
Тоже слоу мо. Но когда запускаю это а потом игру все прекрасно. Это будильник каждую секунду вызывает Time и сверяет с едитами.
0
|
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
|
09.12.2014, 01:02 [ТС] | 31 |
Ты в какой дельфе компилишь? ехе-шник всего 2 метра. у меня 10 метров стабильно (ХЕ3)
0
|
пофигист широкого профиля
4731 / 3166 / 858
Регистрация: 15.07.2013
Сообщений: 18,231
|
|
09.12.2014, 02:42 | 32 |
Infernalboy, я бы ещё взглянул бы на тот "будильник с использованием Таймера моего исполнения".
Точнее на его код. Есть у меня некие мысли связанные с тем, что обычная Виндусовая "Косынка" разбрасывает карты гораздо шустрее, если при этом возить мышкой.
0
|
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
||||||
09.12.2014, 04:06 [ТС] | 33 | |||||
У тебя проблемы с логическим мышлением? ну как бэ на
0
|
пофигист широкого профиля
4731 / 3166 / 858
Регистрация: 15.07.2013
Сообщений: 18,231
|
|
09.12.2014, 04:16 | 34 |
Проблема не у меня, а у тебя.
Ну "как бэ" пошел бы ты тогда лесом на север. P.S. А мои мысли подтвердил сей код.
0
|
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
|
09.12.2014, 04:24 [ТС] | 35 |
Ты что обиделся что ли? мог бы просто сказать дай код. ни кого обижать не хотел.
0
|
842 / 737 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
|
|
09.12.2014, 04:40 | 36 |
Infernalboy,
Поток есть, поток если ты не задал по умолчанию приоритет на какой-либй поток, то они будут выполнятся по очереди. Если чо меня FEI поправит.
0
|
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
|
09.12.2014, 04:49 [ТС] | 37 |
с этим я согласен, но выполнение будет атомарным. Ну а приоритеты я поставил оба нормал.
0
|
842 / 737 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
|
|
09.12.2014, 05:14 | 38 |
А вобще по идее количетво потоков равно быть элементам их обрабатывающюх элементов (ну типа массива что ли)
Ну я точно не знаю просто версия пришла на ум. FIL- здесь все решает. Infernalboy, слыш ты Потоки могут могут друг друга и ждать- все зависит от выполнения задачи, а могут и не жддать а выполнятся так как они успеют, все зависит от задачи твоей.
0
|
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
|
|
09.12.2014, 06:27 [ТС] | 39 |
У меня они никого не ждут) Синхронизации вообще никакой. Я их для того и делал чтобы они выполнялись асинхронно.
0
|
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
|
09.12.2014, 09:41 | 40 |
В современных Дельфях есть 2 режима компиляции:
- Debug - отладочный, когда в ЕХЕ добавляется куча отладочной информации и прочей фигни. - Release - релизный, где нет ничего лишнего. Запустил игру на работе - там тормоза есть, причем только если Дельфи не запущен. Пока не понял в чем причина... Поделишься?
1
|
09.12.2014, 09:41 | |
09.12.2014, 09:41 | |
Помогаю со студенческими работами здесь
40
NumericUpDown обрабатывая событие ValueChanged, после нажатия кнопок прибавить/убавить на единицу, выдает старое значение атака на физику? Сочините физику Сочините физику Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |