Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> php - освобождение памяти 
:(
    Опции темы
kZaido
Дата 28.4.2006, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.4.2006

Репутация: нет
Всего: нет



Мой скрипт работает с текстом(строками), много работает, и получается , что он накапливает и накапливает используемую память.
Как средствами php или чего либо другого освобождать ненужную память не во вред скрипту? Везде понаставил unset() ,  неужели нету других вариантов??

очень очень жду мнений smile 
PM MAIL   Вверх
Mal Hack
Дата 28.4.2006, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



В PHP нет понятия динамической памяти, посему придется решать задачу разбиением на более мелкие или оптимизацией алгоритма. 
PM ICQ   Вверх
kZaido
Дата 28.4.2006, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.4.2006

Репутация: нет
Всего: нет



а как объясняется эта штука теорией?
всевремя скрипт работает с разными строками, но для каждой стабильно есть unset. Почему память не занимается другими переменными? Почему не освобождается? Может есть какая-то системная утилита которой можно освободить память(допустим под никсы)...

Просто скрипт занимает и гигабайт оперативы. если ему повезет smile конечно постепенно, но уверенно... 
PM MAIL   Вверх
Mal Hack
Дата 28.4.2006, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(kZaido @  28.4.2006,  23:46 Найти цитируемый пост)
Просто скрипт занимает и гигабайт оперативы. если ему повезет smile конечно постепенно, но уверенно...  

Нет, есть ограничение в интерпретаторе и в веб-сервере, которое настраивается.


Цитата(kZaido @  28.4.2006,  23:46 Найти цитируемый пост)
Почему память не занимается другими переменными? 

Скажем так, это отчасти небеопасно, и требует нагрузки на сервер. Плюс, в ПХП нет указателей, как пользовательских типов. 
PM ICQ   Вверх
kZaido
Дата 29.4.2006, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.4.2006

Репутация: нет
Всего: нет



да, про ограничение я знаю, оно конечно же работает, я говорю в целом....
т.е. основной метасмысл послания - если переменная созданна один раз, то ее место нельзя будет занимать до конца выполнения скрипта(или как вообще?) . Т.е. чем больше переменных тем больше места и т.п. ???
А когда освободится память которую занимает скрипт??? 
PM MAIL   Вверх
Mal Hack
Дата 29.4.2006, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(kZaido @  29.4.2006,  00:01 Найти цитируемый пост)
т.е. основной метасмысл послания - если переменная созданна один раз, то ее место нельзя будет занимать до конца выполнения скрипта(или как вообще?) . Т.е. чем больше переменных тем больше места и т.п. ???

Да. Это также как и при использовании статических переменных в любом другом языке. Объем памяти можно изменять лишь используя ДП, с укзателями.

Цитата(kZaido @  29.4.2006,  00:01 Найти цитируемый пост)
А когда освободится память которую занимает скрипт???  

Если быть точным, то при завершении работы процесса веб-сервера, который контролирует скрипт. 
PM ICQ   Вверх
AztEK
Дата 29.4.2006, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: нет
Всего: 18



Если скрипт достаточно большой, можно оптимизировать и так: http://argon.com.ru/internet/webmastering/phpoptim

Ещё видел статью про использование разделяемой памяти в PHP. Правда, не разобрался я в этой штуке :/

Ещё можно перевести скрипт на ООП... 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
kZaido
Дата 29.4.2006, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.4.2006

Репутация: нет
Всего: нет



да он на ооп, используется несколько классов, композиция классов.
большие переменные не передаются функциям, а берутся из общих переменных класса, это сделано для экономии памяти(ну я так думаю. что это ее экономит)... 
PM MAIL   Вверх
Replicator
Дата 1.5.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 30.4.2006
Где: Outer Heaven

Репутация: нет
Всего: нет



РНР такой язык, что тебе нет нужды думать об указателях и использовании памяти. Если ты используешь unset, то ты освободил память и тебя не должно волновать, кто, что и как будет ее использовать потом. Система сама разберется и не нужно ей помогать. В этом смысл языков высокого уровня. 
--------------------
 
PM WWW ICQ   Вверх
Wowa
Дата 1.5.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



kZaido, а если ты не будешь создавать новые переменные, а будешь заменять значение текущих? 
PM WWW   Вверх
S.A.P.
Дата 1.5.2006, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



kZaido, а можно скрипт в студию? 

По идее, в PHP память под переменную должна освобождаться, как только она "уходит из виду", т.е теряются все ссылки к ней. Думаю от сюда и надо отталкиваться.  

Это сообщение отредактировал(а) S.A.P. - 1.5.2006, 14:30
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0705 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.