Page 1 of 1

Большие файлы ресурсов медленно работают

PostPosted: Thu May 28, 2009 6:20 am
by Gloggy
Есть вот словарик, в котором под 200.000 всяких звуковых файлов и картинок к словарю.

При свеже-загруженном GD попытка набрать слово для поиска или показать первую карточку приводит к тормозам секунд на 40-50, видимо читается этот огромный файл с тысячами звуков. Причем, происходит это каждый раз, после перезагрузки GD. Может быть, есть смысл как-то пре-индексировать содержимое больших zip файлов, как со словарями сейчас происходит, чтобы каждый столь долгоиграющее действие не повторять, если это вообще технически возможно....

Re: Большие файлы ресурсов медленно работают

PostPosted: Thu May 28, 2009 10:46 am
by ikm
В это время читается central directory zip-архива. Вообще-то то, что он читается 50 секунд, звучит странно. У меня архив с где-то ~70тыс читается 5 секунд максимум. Технически придумать как это обойти сложно, потому что всё это делает библиотека libzip -- она производит данное действие при открытии zip-файла. То есть, тут уже надо править саму библиотеку. Или же понять, почему на то чтобы прочитать 200тыс файлов требуется 50 сек.

Из простого что можно сделать - открывать zip-архив отдельно ото всего остального. Тогда поиск будет работать сразу, но картинкок или звука все равно придется дожидаться.

Re: Большие файлы ресурсов медленно работают

PostPosted: Thu May 28, 2009 12:02 pm
by Gloggy
Понял. У меня на самом деле где-то около 5 словарей с огромным количеством всяких звуков, а не один, поэтому и подтормаживает так. Наверное, если бы просто подгрузку ресурсов сделать отдельно, это решило бы большую часть проблемы. То бишь, со звуками вообще никаких проблем у пользователя - карточка открывается сразу, а на звук нажал, и если звуки еще не готовы, ждем. А вот как с картинками быть - они же прямо в тело карточек встраиваются - не знаю.

Re: Большие файлы ресурсов медленно работают

PostPosted: Thu May 28, 2009 12:27 pm
by ikm
Попробуй последнюю ревизию. Возможно, минимизация количества вызовов realloc скажется на скорости чтения оглавлений zip-архивов позитивно.

Re: Большие файлы ресурсов медленно работают

PostPosted: Thu May 28, 2009 3:17 pm
by Gloggy
ОФИГЕННО! Вместо 50 секунд теперь меньше 5!!!! ;)

Re: Большие файлы ресурсов медленно работают

PostPosted: Thu May 28, 2009 3:37 pm
by ikm
Значит, в windows очень медленный realloc. В linux изменение практически ни на что не повлияло (хотя количество вызовов этой функции сократилось с сотен тысяч раз до примерно пяти раз). Короче, поздравляю :)