![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
kZaido |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.4.2006 Репутация: нет Всего: нет |
Мой скрипт работает с текстом(строками), много работает, и получается , что он накапливает и накапливает используемую память.
Как средствами php или чего либо другого освобождать ненужную память не во вред скрипту? Везде понаставил unset() , неужели нету других вариантов?? очень очень жду мнений ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
В PHP нет понятия динамической памяти, посему придется решать задачу разбиением на более мелкие или оптимизацией алгоритма.
|
|||
|
||||
kZaido |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.4.2006 Репутация: нет Всего: нет |
а как объясняется эта штука теорией?
всевремя скрипт работает с разными строками, но для каждой стабильно есть unset. Почему память не занимается другими переменными? Почему не освобождается? Может есть какая-то системная утилита которой можно освободить память(допустим под никсы)... Просто скрипт занимает и гигабайт оперативы. если ему повезет ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Нет, есть ограничение в интерпретаторе и в веб-сервере, которое настраивается. Скажем так, это отчасти небеопасно, и требует нагрузки на сервер. Плюс, в ПХП нет указателей, как пользовательских типов. |
|||
|
||||
kZaido |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.4.2006 Репутация: нет Всего: нет |
да, про ограничение я знаю, оно конечно же работает, я говорю в целом....
т.е. основной метасмысл послания - если переменная созданна один раз, то ее место нельзя будет занимать до конца выполнения скрипта(или как вообще?) . Т.е. чем больше переменных тем больше места и т.п. ??? А когда освободится память которую занимает скрипт??? |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Да. Это также как и при использовании статических переменных в любом другом языке. Объем памяти можно изменять лишь используя ДП, с укзателями. Если быть точным, то при завершении работы процесса веб-сервера, который контролирует скрипт. |
|||
|
||||
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: нет Всего: 18 |
Если скрипт достаточно большой, можно оптимизировать и так: http://argon.com.ru/internet/webmastering/phpoptim
Ещё видел статью про использование разделяемой памяти в PHP. Правда, не разобрался я в этой штуке :/ Ещё можно перевести скрипт на ООП... -------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
kZaido |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.4.2006 Репутация: нет Всего: нет |
да он на ооп, используется несколько классов, композиция классов.
большие переменные не передаются функциям, а берутся из общих переменных класса, это сделано для экономии памяти(ну я так думаю. что это ее экономит)... |
|||
|
||||
Replicator |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 30.4.2006 Где: Outer Heaven Репутация: нет Всего: нет |
РНР такой язык, что тебе нет нужды думать об указателях и использовании памяти. Если ты используешь unset, то ты освободил память и тебя не должно волновать, кто, что и как будет ее использовать потом. Система сама разберется и не нужно ей помогать. В этом смысл языков высокого уровня.
--------------------
|
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
kZaido, а если ты не будешь создавать новые переменные, а будешь заменять значение текущих?
|
|||
|
||||
S.A.P. |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
kZaido, а можно скрипт в студию?
По идее, в PHP память под переменную должна освобождаться, как только она "уходит из виду", т.е теряются все ссылки к ней. Думаю от сюда и надо отталкиваться. Это сообщение отредактировал(а) S.A.P. - 1.5.2006, 14:30 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Тексты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |