|
|
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
Мне нужно проинключить скриптом все найдены файлы в папках и под папках, вот сделал это так (привожу код без всяких доп. проверок но не в них проблема) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. папок и подпапок не так уж и много но время генерации страницы при инклуде библиотек в этих подпапках и папках увеличелось в два-три раза в отличие если бы их просто тупо руками в скрипте проинклулить. Но мне надо автоматом что бы скрипт подключал остльные скрипты-библиотеки в нужной мне папке и во всех его подпапках. Можно как то оптимизировать это ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 16:42:06 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
TWK, может ты просто поставишь xcache/eacclerator/apc ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 17:29:39 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
TWKМожно как то оптимизировать это ? Нет, опрос файловой системы при каждой загрузке страницы - это очень дорого. Кэшируй список файлов, если уж очень хочешь такую работу инклудов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 17:46:59 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
На мой взгляд, более правильным будет один файл со списком инклюдов. Именно он должен отрабатывать при выполнении скрипта. А формировать/обновлять этот файл следует каждый раз при изменении набора файлов в директории. В проверках следует исключить резервные копии вроде *.bak, ~ и т.п. Или как то ещё более строго подойти к этому вопросу. Мне известны случаи, когда резервную копию именовали разными нестандартными способами, вроде file.php_27.09.2010, или совсем безобидным 27092010_file.php. Смеяться не надо... Как то в пятницу, летним вечером прибежали с проблемой, растущей из такого вот скрипта, который инклюдил ВСЕ файлы, находящиеся в директории. Вывод ошибок, конечно, отключен, потому незадачливому верстальщику было и невдомёк, что сайт "упал" именно из-за такой вот "резервной копии". А могли б запихнуть туда не класс, а чего другое, вроде таблицы стилей... Глупость то человеческая безгранична, проверок не напасёшся )) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 18:43:27 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
TWK как обычно придумывает себе странные проблемы, а потом мужественно их решает)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 19:34:53 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
хотел еще сказать что в моем способе есть проблема. Я не могу собрать массив что бы потом по нему пройтись когда нужно и проинклудить. Кто нибудь знает как такое сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 23:00:49 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
TWK, >Я не могу собрать массив что бы потом по нему пройтись когда нужно А куда нужно? Рекурсивный обход каталогов из соседней темы или другое? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 23:02:45 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 23:13:18 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
моя плакает. открой для себя autoload. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 23:21:20 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
ScareCrow причем тут ооп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 23:25:20 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
TWK, >тут рекурсивный обход, да. Уже высказался, почему не следует это использовать. >либо только нужные на конкретной странице а не сразу все либы А вот это здравая мысль! Как узнать, какие либы нужны? autoload уже отвергнут окончательно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 23:52:14 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
пример использования autoload. можно посмотреть ? и это же ооп да ? есть вариант пройтись по всем папка не рекурсивно ? хм.. щас посмотрю, может и предлагали в предыдущей теме не рекурсивный обход ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2010, 23:54:04 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
если моя рекурсия плохая, то как сделать на это http://www.php.net/manual/en/class.directoryiterator.php я не пойму ( и также собрать массив всех библиотек в папках и подпапках, что бы не инклудить их всех этой рекурсивной функцией ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 00:24:10 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
круто нашел способ, так и массив можно собрать Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 00:28:48 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
TWK, пробегать всё дерево файлов при каждой загрузке скриптов (не обязательно инклудить, просто узнать, какие файлы есть) - это очень дорогая операция. Кэшируй этот массив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 05:03:27 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
ScareCrowмоя плакает. открой для себя autoload. И чем же он тут поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 09:43:49 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
HettИ чем же он тут поможет? тем что файлы сами будут подгружаться тогда когда это нужно, а не тупо инклюдить сотню файлов при каждом запросе, не разбирая нужно это или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 10:06:03 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
а, ну так даже не известно, что там в этих файлах, если какие-то модели-классы, то да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 11:30:48 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
Hett, если не классы, то можно сделать свой простой автолоад. который будет в любом случае эффективнее чем тупой инклюд ВСЕХ файлов из кучи директорий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 12:09:52 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
Есть роект(можно сказать фреймвок) для которого люди пишут разные либы, а проектом они подгружаются. Что то по типу хелперов как это в фреймворках есть, но только они могут быть в папках и подпаках. даже с помощью RecursiveDirectoryIterator несколько библиотек в нескольких папок грузятся страницу от 2 - 4 секунд, а что будет когда их будет десятки, страшно преставить что будет... о_О Короче время генрации страницы большое для небольшого количества уже имеющихся либ. Каким то образом индесировать уже подключенные и по этим папка не пробегать чтоли. как это сделать досих пор не вьехал :( ведь библиотеки будут появлятся новые... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 13:08:02 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
TWK, кэшируй массив файлов, полученный RecursiveDirectoryIteratorом. У нас примерно такая же система подгрузки классов (не соблюдаем строгую иерархию виду Blah/BlahBlah/BlahBlahBlah.php -> class Blah_BlahBlah_BlahBlahBlah) - до кэширования могла положить сервер на полминуты при нескольких одновременных запросах; после кэширования работает как часы и держит много одновременных коннектов. И да, ты правильно думаешь, что когда файлов будет много - дела будут хуже. Настолько хуже!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 13:33:35 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
Как magento до сих пор работает ( 12,5к файлов =) ) Конечно она все разом не грузит.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 18:50:31 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
сделал такое вот кеширование файлов только оно чето не правильно работает мне кажется в db.txt записывается N; а не сериализованный массив с которым потом сверять Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 19:07:11 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
посмотрел еще раз свой вариант, мне кажется он в корне неверный так как все равно обшаривать придется папки и под папки и не входящие в массив дописывать. но прохождения по папкам все равно то есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 22:14:49 |
|
||
|
Оптимизация работы с файловой системой
|
|||
|---|---|---|---|
|
#18+
TWKпосмотрел еще раз свой вариант, мне кажется он в корне неверный так как все равно обшаривать придется папки и под папки и не входящие в массив дописывать. но прохождения по папкам все равно то есть. Эмм... При каждом запросе к серверу надо обшаривать тыщу папок по стотысячному разу в надежде обнаружить, что кто-то только что добавил свежий файлик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 22:41:13 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=36998271&tid=1464786]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
181ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 520ms |

| 0 / 0 |
