![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Joyer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 22.1.2008 Репутация: нет Всего: нет |
Здравствуйте!
Вопрос по отладке приложений. Я написал Direct3D-шный screensaver. Все работает стабильно, но иногда приложение зависает. Не могу найти закономерности. Суть программы в показе примитивного слайд-шоу. Работает с одними и теми же файлами. Изображения для слайд-шоу загружаются в отдельных потоках, потом синхронизируются, потом загружаются в текстуры. Проверял process explorer-ом на предмет утечки памяти. Объем занимаемой памяти не увеличивается, но постоянно растет page faults. Я не очень опытный в вопросе работы с DirectX, возможно я неправильно освобождаю текстуры или что-нибудь еще… Бывают ли утечки видео памяти? Если да, то как их проверить? Нужно ли освобождать текстуру и спрайт перед каждой загрузкой нового изображения? Извините за изобилие вопросов, просто теряюсь в догадках. Основной вопрос: как найти ошибку? Заранее благодарен, Дмитрий. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Если используются потоки, то начинать нужно с них. Может там элементарный дедлок Если используются WaitForSingleObject, то в случае длительного ожидания, можно выдавать ошибку.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Joyer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 22.1.2008 Репутация: нет Всего: нет |
WaitForSingleObject точно не использую.
изучаю пока http://forum.vingrad.ru/forum/topic-60076.html А что такое дедлок? Это когда осн. поток ждет другого а тот уже не работает? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Когда потоки ждут друг друга. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Joyer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 22.1.2008 Репутация: нет Всего: нет |
Да нет, вроде как не потоки. Дело в том, что я отображаю изображения с жесткого диска. Их не много и когда последний из списка показан, программа отображает первый.
т.е. действия цикличны, а зависает программа по истечении произвольного количества времени. Это приводит к мысли о воздействии внешних факторов (кол-во) свободной памяти, место на HDD, или кол-во доступной видео памяти. Можно ли как-то проверить наличие не освобожденных указателей? Ведь при загрузки текстуры резервируется видеопамять... |
|||
|
||||
| Joyer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 22.1.2008 Репутация: нет Всего: нет |
Кто-нибудь в курсе по поводу page faults?
Это единственное, что приходиться подозревать. Очень внимательно пересмотрел структуру потоков. Перечитал http://forum.vingrad.ru/forum/topic-60076.html Может есть особенности в конструкциях try - except, при использовании их в потоках? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Joyer, ну решение таких вопрос из области телепатии. Если проект большой, то никто не будет его изучать целиком за вас. Если есть подозрительные фрагменты, то выкладывайте.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Joyer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 22.1.2008 Репутация: нет Всего: нет |
Проблемма была в организации потоков.
Больше ответов получил на более корректно поставленный вопрос здесь: http://forum.vingrad.ru/forum/topic-244130...y1761595/0.html Alexeis Спасибо, за время потраченное на мою проблему. Добавлено через 1 минуту и 9 секунд |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |