![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1121
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
Все правильно sergroj написал. Но это уже не актуально. Так как нет уже необходимости пользоваться сторонним приложением для паковки в лод. Вообще нет необходимости паковки в лод. Блин, как же это удобно!
Добавлено ([mergetime]1277972253[/mergetime]): Arkin Hgarot, мне сложно сказать в чем дело и как помочь, потому что у меня на (непосредственно)XP sp3, все работает с вогом 3.58, поставленным на буковский комплит. -------------------- |
|
|
![]()
Сообщение
#1122
|
||||
![]() Hota Crew Сообщений: 11 597 Спасибо сказали: 9893 раза ![]() |
а у тебя любые дефы в папке хайреза будут юзаться или только хайрезные, а обычные надо в лоды по старинке загонять?
-------------------- |
|||
|
||||
![]()
Сообщение
#1123
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз ![]() |
любые. он это писал.
|
|
|
![]()
Сообщение
#1124
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
Чем больше будет дефов в папке - тем хуже.
-------------------- |
|
|
![]()
Сообщение
#1125
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
Засунул все 2570 дефов в папку, разницы на своем EeePC 1008HA не заметил.
Добавлено ([mergetime]1277991167[/mergetime]): Засунул все 2570 дефов в папку, разницы на своем EeePC 1008HA не заметил. -------------------- |
|
|
![]()
Сообщение
#1126
|
|
![]() Freedom Fighter Сообщений: 1 852 Спасибо сказали: 4031 раз ![]() |
Надо будет попробовать подоставать всё из лодов...
-------------------- In this wild and woolly universe of ours, there are only three things you can count on: your brains, your bros, and your bike! |
|
|
![]()
Сообщение
#1127
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
Я уже писал в другой теме, когда спор шёл с CrackedMind. Когда pcx-ы перенёс в папку, а также wavs и текстовики, то скорость игры упала раза в 4 на FAT32 и в 1.5 раза на NTFS, когда вся папка Героев была смонтирована на ROM-Disk. Не знаю, какие у вас компы и ОС, но у меня на любом при 2000 файлов в папке резко падает производительность программы, обращающейся к случайным файлам.
-------------------- |
|
|
![]()
Сообщение
#1128
|
|
![]() Etoslozhnostatus Сообщений: 8 578 Спасибо сказали: 15980 раз ![]() |
На NTFS это практически не заметно. Но всё равно, это плохо.
Либо ЛОД, либо другой какой архив с дефами, пэцэиксами - вариант по-лучше. -------------------- - Да ну!?
- Horn of the Argali гну! |
|
|
![]()
Сообщение
#1129
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
Oбъясните, почему должна падать производительность.
-------------------- |
|
|
![]()
Сообщение
#1130
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз ![]() |
потому что один файл нашел - и все.
|
|
|
![]()
Сообщение
#1131
|
|
![]() Etoslozhnostatus Сообщений: 8 578 Спасибо сказали: 15980 раз ![]() |
Цитата(baratorch @ 01 Jul 2010, 20:46) Oбъясните, почему должна падать производительность. Из-за поиска среди большого количества файлов. Это особенно заметно на FAT32. Впрочем, если будет десяток дефов, а не несколько сотен или больше, которые нужно подгружать, то это не критично, как тут пугают. -------------------- - Да ну!?
- Horn of the Argali гну! |
|
|
![]()
Сообщение
#1132
|
|
![]() Let it be... Сообщений: 104 Спасибо сказали: 9 раз ![]() |
Количество файлов не имеет значения, потому что есть такая штука КЭШ. Один раз прогрузилось и все. Не дергает же он диск за дефами при каждой перерисовке. А если бы дергал, то ЛОД был бы бОльшим тормозом, т.к. там надо сначала распаковать, а уже потом юзать. На дворе 2010 ))
-------------------- Фоур
Таверна |
|
|
![]()
Сообщение
#1133
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
попробовал на флешке отформатированной в фат16... Вроде что-то и есть но четко различить скорость не получилось (52 и 2570 дефов в папке).
Ведь в лоде тоже надо найти запись и плюс еще разархивировать ее. -------------------- |
|
|
![]()
Сообщение
#1134
|
|
![]() 😸🧡✊✌️ Сообщений: 16 411 Спасибо сказали: 3269 раз ![]() |
Цитата(gamecreator @ 01 Jul 2010, 20:19) потому что один файл нашел - и все. Не только это. Еще надо помнить, что дисковая память выделяется кластерами и при хранении большого числа мелких файлов выше накладные расходы, в том числе и на каталоги.Цитата(etoprostoya @ 01 Jul 2010, 18:44) Либо ЛОД, либо другой какой архив с дефами, пэцэиксами - вариант по-лучше. Если мне не изменяет склероз, LOD отличается от большинства форматов архивов наличием сравнительно короткого индекса. Тем же свойством, вроде бы обладают архивы zip. Так что их тоже можно использовать. А вот rar (особенно solid-ный) придется сканировать от начала до конца или составлять индекс вручную.
-------------------- Я слежу за тобой!
![]() ![]() Цитата Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел. Борис "Бонус" Репетур, "От винта!", выпуск 38. |
|
|
![]()
Сообщение
#1135
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
Тесты говорят обратное. И при чём тут кэш? Файлы грузятся по требованию с рандомным доступом. Смысл кэша нулевой. При этом я тестировал даже при подключении всей папки героев как RAM-диска (форматнул в NTFS). И всё равно весь визуальный интерфейс и анимация работали с задержками. Неприятными, надо сказать. А на FAT32 вообще вход в город выдавал на несколько секунд чёрный экран. Да что говорить. Поставьте Handy Cashe и понаблюдайте за работой командера при входе в папку. 2000 каталогов - вход 3-4 секунды. Полный список файлов - несколько минут. Удаление каталога - 5-10 минут. Теорию в топку.
И всё же если её (теорию) вспомнить, то работать с одним уже открытым файлом, для которого известны адреса секторов, гораздо быстрее, чем постоянно рекурсивно гонять жёсткий диск в поисках файла для открытия, считывания его структуры, чтения, закрытия и так далее по кругу. И кэш для цельного архива эффективнее будет работать, заглатывая куски по Х мегабайт. Цитата т.к. там надо сначала распаковать, а уже потом юзать. На дворе 2010 )) Не верно. Загрузить меньше в RAM и распаковать быстрее, чем загрузить больше с HDD. Касперски писал в одной из статей. Не согласиться трудно. -------------------- |
|
|
![]()
Сообщение
#1136
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
Ах да, кстати, в оригинале да же если ниодного PCX-а в Data нету Игра всеравно "ищет" каждый рсх в Data посредством вызова CreateFile(...) если вызов успешный, игра загружает рсх, если нет - лезет в лод.
То же самое я сделал и с дефами... -------------------- |
|
|
![]()
Сообщение
#1137
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
Попробуй вынуть всё из лодов, посмотришь сам.
Я кроме дефов делал: Код {$IFDEF ERA2}
// Патчим GetBitmap816 General.HookCode(Ptr($55AA9A), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5); // Патчим GetBitmap16 General.HookCode(Ptr($55AE96), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5); // Патчим GetPalette General.HookCode(Ptr($55B2BC), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5); // Патчим GetFont General.HookCode(Ptr($55BB27), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5); // Патчим GetText General.HookCode(Ptr($55BDE7), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5); // Патчим GetSample General.HookCode(Ptr($55C61F), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5); // Патчим OpenFile для GetSample General.HookCode(Ptr($604881), @AsmHook_OpenFile, General.C_HOOKTYPE_CALL, 6); General.HookCode(Ptr($604403), @AsmHook_OpenFile, General.C_HOOKTYPE_CALL, 6); General.HookCode(Ptr($604A17), @AsmHook_OpenFile, General.C_HOOKTYPE_CALL, 6); // Патчим GetSpreadsheet General.HookCode(Ptr($55C0B7), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5); // Патчим ссылки на Data\s Patch.Opcode:=$68; Patch.Addr:=@General.ErmPath[1]; General.WriteAtCode(Ptr($72C2EB), @Patch, 5); General.WriteAtCode(Ptr($773EB9), @Patch, 5); General.WriteAtCode(Ptr($777E6F), @Patch, 5); Patch.Addr:=@General.ErtPath[1]; General.WriteAtCode(Ptr($72C34C), @Patch, 5); Patch.Addr:=@General.ErsPath[1]; General.WriteAtCode(Ptr($7B3800), @Patch.Addr, 4); {$ENDIF} -------------------- |
|
|
![]()
Сообщение
#1138
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
я ж не спорить пытаюсь, мне интересно почему.
Ну и яже не отказываю в использовании лода: хотите -уберите все дефы из HiRezData\DEF в лод, хотите - сделайте наоборот. Для быстрого тестирования просто кидать в папку - очень удобно. Ну и загрузка из папки работает предельно четко, а вот например bitlib и H3wUpd, как выяснилось, конфликтуют.. -------------------- |
|
|
![]()
Сообщение
#1139
|
|
![]() Организатор лиги WCL Сообщений: 981 Спасибо сказали: 632 раза ![]() |
Цитата(EtherniDee @ 01 Jul 2010, 21:33) Я кроме дефов делал: EtherniDee, ты нужен стране! можешь поискать кой-какие вещи в коде для мультиплеер игроков? -------------------- Постоянно играю на рейтинг www.heroes-III.com в онлайне через сервер GameRanger - в HoMM3 SOD или WT. Присоединяйтесь! Чужие подписи и аватары не читаю - отключил
|
|
|
![]()
Сообщение
#1140
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
SAG, этот код из Эры 1.7, но перемещение ресурсов по отдельным папкам вместо Data не понравилось MОP-у, в итоге убрал.
-------------------- |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 24 August 2025 - 17:47 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|