Maximum execution time of 30

Added by Андрей Сергийчук over 1 year ago

Chrome 6
Windows Server 2000

1. <b>Fatal error</b>: Maximum execution time of 30 seconds exceeded in <b>js\elfinder\connectors\php\elFinder.class.php</b> on line <b>1075</b><br />
такая же ошибка в 1244

ошибка при старте, в каталоге много подкаталогов и картинок в этих каталогах. Если выбираю менее наполненную папку тупит но работает...

какие могут быть советы?

2. Кстати 'dirSize' => false, а размер каталога так и считает, реально даже не интересно какого он размера... но есть каталоги которые он показывает размер 500Мб, а на самом деле там 6Мб в которых картинки по 2кб, хотя когда выбираешь саму картинку размер правильно выводит.


Replies (11)

RE: Maximum execution time of 30 - Added by Troex Nevelin over 1 year ago

1. В настройках php.ini есть параметр max_execution_time у вас он установлен в 30 секунд, можете установить больше.
У elFinder'а есть поблема с производительностью при большом количестве директорий. На будущие версии есть планы по решению этой проблемы.

2. При отключённом подсчёте размера директории выводиться, кажется, размер занимаемый самой директорией, но не её содержимым.

RE: Maximum execution time of 30 - Added by Андрей Сергийчук over 1 year ago

я то могу и set_time_limit(0) установить, дело тут не в том. Не думаю что редакторам понравиться по 1.5 минуты сидеть и ждать пока откроется браузер картинок, а в статье может быть до 10-15 картинок + картинка для списков = одна статья только на открытие браузера 5 минут + еще нужно пройтись по каталогам, ситуация такая же :(

Кстати в функции

1 private function _tree($path) 
2 {
3 ...
4 if ($this->_isAccepted($ls[$i]) && filetype($p) == 'dir') {
5 ...
6 }

зачем файлам проверять $this->_isAccepted($ls[$i])? файлов то больше чем папок логичнее filetype($p) == 'dir' && $this->_isAccepted($ls[$i])
да filetype($p) работает медленнее, но лучше проверить лишних 3 каталога чем сотни файлов гонять через $this->_isAccepted($ls[$i]), я так думаю.

RE: Maximum execution time of 30 - Added by Андрей Сергийчук over 1 year ago

так же не понятна история с _findDir, зачем лишний раз дергать файловую систему?
Мне очень понравился редактор, но расстроен что не могу использовать :(

RE: Maximum execution time of 30 - Added by Troex Nevelin over 1 year ago

Как я писал выше, о проблеме производительности нам известно. Изначально так было сделанно чтобы упростить клиентскую часть, тем более что в большинстве случаев elFinder справляется хорошо.

До этого на форуме уже поднималась эта тема, посмотрите её. Там есть мой небольшой патч который позволяет ускорить работу и знизить число обращений к файловой системе. Кстати если не сложно пришлите что выдаёт find ./path/to/elfinder/root -type d | wc -l и find ./path/to/elfinder/root -type f | wc -l

В данной реализации переделать коннектор для нормальной работы с большим количеством файлов/директорий не получиться, для этого необходимо менять и логику работы клиентской части. В следующей версии elFinder это задача будет решена в первую очередь, так как затронет большую часть архитектуры.

RE: Maximum execution time of 30 - Added by Dmitry Ishutkin about 1 year ago

> если не сложно пришлите что выдаёт find ./path/to/elfinder/root -type d | wc -l

4639

> и find ./path/to/elfinder/root -type f | wc -l

106756

без шансов, я так понимаю :) сейчас еще мало, обычно раз в 5-10 больше и того и другого...

RE: Maximum execution time of 30 - Added by Troex Nevelin about 1 year ago

Это проблема кардинально решена в experimental ветки, следующий резлиз 2.0 не будет иметь проблем с большим количеством файлов/директорий

RE: Maximum execution time of 30 - Added by Dmitry Ishutkin about 1 year ago

http://elrte.org/redmine/boards/1/topics/2394?r=2396#message-2396

В git есть две ветки master и experimental, из первой elFinder рабочий и чуть-чуть новее чем 1.1, во второй будущая версия 2.0 и до production ей пока ещё далеко, она скорее будет интересна разработчикам.

увы.

RE: Maximum execution time of 30 - Added by Troex Nevelin about 1 year ago

Одно другому не протеворчит. В текущей версии мы это менять не будем, так как API и принцип работы очень сильно изменился в лучшую сторону, но старый клиент будет неспособен работать с новым коннектором, одна новый ui сможет работать как с новым, так и со старым коннектором

RE: Maximum execution time of 30 - Added by Dmitry Ishutkin about 1 year ago

просто я думал, что это означает, "ui из ветки expiremental еще крив, так что лучше его пока не ставьте".

RE: Maximum execution time of 30 - Added by Dmitry Levashov about 1 year ago

Он не крив - он еще сыр :)

RE: Maximum execution time of 30 - Added by Dmitry Ishutkin about 1 year ago

поэтому его не существует, поэтому и "без шансов" :)

(1-11/11)