|
|
|
| Здравствуйте. Тестирую свой скрипт на Denwer. Через диспечер задач Windows смотрю сколько он ест ОЗУ и вижу, как только я перехожу на какуюто струницу он ест на 100 кил больше. Какая функция в PHP может после того как пользователь открыл страницу освободить память потраченую на открытие в ОЗУ? | |
|
|
|
|
автор: Marek (17.07.2009 в 10:38) |
|
|
для: pavluxa09
(17.07.2009 в 09:34)
| | ну ты наверное насоздавал переменных в скриптах дохера которые после выполнения просто болтаются в ОЗУ. unset() удаление не нужных переменных | |
|
|
|
|
|
|
|
для: Marek
(17.07.2009 в 10:38)
| | А как можно сразу все удалить? | |
|
|
|
|
|
|
|
для: pavluxa09
(17.07.2009 в 10:44)
| | Выключить компьютер :) | |
|
|
|
|
|
|
|
для: sim5
(17.07.2009 в 10:52)
| | и выдерните модули ОЗУ. :) | |
|
|
|
|
|
|
|
для: Trianon
(17.07.2009 в 10:57)
| | Очень смешно. А реально? | |
|
|
|
|
|
|
|
для: pavluxa09
(17.07.2009 в 10:59)
| | А реально - после выполнения скрипта (то есть в момент окончания выдачи страницы браузеру) память окажется освобожденной. | |
|
|
|
|
|
|
|
для: Trianon
(17.07.2009 в 10:57)
| | Для полной очистки? :) | |
|
|
|
|
|
|
|
для: sim5
(17.07.2009 в 10:59)
| | Да полностью очистить все переменные как? | |
|
|
|
|
|
|
|
для: pavluxa09
(17.07.2009 в 10:44)
| | Ладно, смех смехом....
Windows работает по принципу вытесняющей многозадачности в области касаемой распределения памяти. Другими словами, вы запускаете приложение и под него выделяется затребованная память. Если вы запустите другое приложение, то первое системой будет считаться неактивным, и его память может быть сброшена на диск, в файл подкачки, а высвобожденные таким образом ресурсы отданы второму приложению.
При запросе РНР страницы, интерпритатор отработает код ваш и помрет вместе со всеми переменными, а память у клиента (в Windows) будут занимать уже не РНР-переменные, а браузер с загруженной в него страницей.
Но это не значит, что вы должны безалаберно расходовать ресурсы компьютера сервера - если будет нехватка памяти при выполнении ваших задач, то работа вашего скрипта может быть просто прервана.
В РНР нет обязанности объявления типов переменных, а так же отводимой под них размер памяти. Но вы должны следить за этим, например, открытие дескрипторов всегда должно завершаться их закрытием, это относится к таким прожорливым к памяти дескрипторам как изображения. Если таковых наплодить во время работы вашего скрипта, то это займет большой размер памяти, что чревато плохими последствиями. | |
|
|
|