![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Гость_Михаил |
|
|||
|
Unregistered |
Здравствуйте.
Некоторое время назад столкнулся с весьма занятным явлением, которому: а. Не смог найти однозначного объяснения б. Не понял как с ним бороться. Буду очень благодарен, если здесь мне помогут найти ответы на эти вопросы. Мне было дано задание написать прогу, работающую с видеоизображением, находящимся на винте. Изображение хранится в виде последовательности отдельных кадров в BMP-формате. Программа их непрерывно подгружает и обрабатывает. В принципе ничего сложного. Каково же было мое удивление, когда написанная прога на Р4 под Win98 обрабатывала всего лишь около 12 кадров в секунду. В то время как под XP она же работала со скоростями 30-40 кадров в секунду. Путем эксперементов, было замечено, что при повторном запуске под Win98 программа некоторое время работает с высокой скоростью, а потом опять сваливается на низкую. Этим временем можно опосредованно управлять, но оно не может привысить определенного предела. "Итак, друзья, какие будут мнения?" (с) |
|||
|
||||
| DenDen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 25.3.2004 Репутация: нет Всего: нет |
Скорее всего дело в подгружения. Или в записи каждого символа(вплоть до выравнивания)через свой вызов WriteFile. Используй MMF для редактирования картинок.Если ты их в память пишешь вручную, то лучше этого не делать--тут ТОРМОЗА обеспечены.
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
З.Ы. большие файлы нужно отображать на память - тогда система сама будет решать, когда нужно подгрузить или освободить каждую отдельно взятую страницу памяти, а для программиста такой файл будет представлен в виде обычного куска памяти, с которым можно работать обычными методами.
-------------------- ![]() |
|||
|
||||
| DenDen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 25.3.2004 Репутация: нет Всего: нет |
Я имею в виду в видюху.Спасибо, что обратил внимание.
|
|||
|
||||
| Гость_Михаил |
|
|||
|
Unregistered |
Я, видимо, не совсем точно выразился. Меня мало интересует откуда вообще взялись тормоза. Меня интересует почему в Win98 они есть, а в ХР нет. И как с ними в Win98 бороться.
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
WinXP (как и 2000) эффективней работает с файлами, памятью, кешем. Поэтмоу недоработки в программе с точки зрения оптимизации чтения / записи файлов более заметны в 98-ой винде, чем в NT.
-------------------- ![]() |
|||
|
||||
| Гость_Михаил |
|
|||
|
Unregistered |
Спасибо, конечно, но "эффективнее" это качественая характеристика. Как именно "эффективнее"? Какие классы недоработок могут проявляться подобным образом?
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
- многократные вызовы SetFilePointer - частое выделение и освобождение блоков памяти большого размера - выделенная память не освобождается -------------------- ![]() |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Думаю такая заметная разница из-за того, что в XP упреждающее чтение и кеширование файловых операций организовано более эффективно.
|
|||
|
||||
| Гость_Михаил |
|
|||
|
Unregistered |
> Думаю такая заметная разница из-за того, что в XP упреждающее чтение и кеширование > файловых операций организовано более эффективно Как именно? А главное, можно ли не исправляя программный код, исправить положение засчет настроек самих Win98? Кстати, интересное наблюдение. Указанный эффект я наблюдал на Р4-2.2ГГц. А на Р3-1ГГц и Селероне-700 скорости почти одинаковы. Разница на 1-2 кадра в секунду. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |