Реклама на сайте Advertise with us

Избежать клонирования объекта (php)

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579

Ссылка на сообщениеДобавлено: 21/07/06 в 23:07       Ответить с цитатойцитата 

Что имеем:

$array = $class->create_array('здоровая', 'куча', 'самых', 'разных', 'параметров');

где $array становится огромный массив, который нужно перебрать

foreach ($array AS $value) {}

после перебора $array уже не нужен, но занимает много места.

получаем варианты реализации

1. Решение в лоб

Код:

$array = $class->create_array('здоровая', 'куча', 'самых', 'разных', 'параметров');
foreach ($array AS $value) {}
unset ($array);


2. Некрасивое решение

Код:

foreach ($class->create_array('здоровая', 'куча', 'самых', 'разных', 'параметров') AS $value) {}


3. Логичное решение, но не прокатывает

Код:

$array =& $class->create_array('здоровая', 'куча', 'самых', 'разных', 'параметров');
foreach ($array AS $value) {}


Вопрос, как сделать код, после исполнения которого не будет висеть массив в памяти?

В первом варианте нравится синтаксис, во втором меньше строк, надежды на жесткую ссылку в третьем не оправдались.

Первый единственноверный вариант получается?

ВОСТОРГ ЗНАЧИТ BMW

0
 
+ + +


С нами с 01.06.03
Сообщения: 3510
Рейтинг: 1411

Ссылка на сообщениеДобавлено: 21/07/06 в 23:46       Ответить с цитатойцитата 

Оффтопик: Последние пару дней реальное засилье php-кодеров на форуме...

1
 



С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579

Ссылка на сообщениеДобавлено: 22/07/06 в 00:14       Ответить с цитатойцитата 

по сабжу есть мысли у кого-нить?

ВОСТОРГ ЗНАЧИТ BMW

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 22/07/06 в 00:18       Ответить с цитатойцитата 

Цитата:
unset ($array);

а вот нихрена вам не поможет icon_smile.gif
Всего за $1 дам ответ как правильно убить массив в памяти icon_smile.gif

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

6
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 22/07/06 в 00:28       Ответить с цитатойцитата 

Stek писал:
Всего за $1 дам ответ как правильно убить массив в памяти icon_smile.gif


ну какой вот из тебя маркетолог? icon_biggrin.gif надо так: всего за $0.99 .... icon_smile.gif

6
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 22/07/06 в 00:36       Ответить с цитатойцитата 

webboxxx: ты смотри глубже, а думай ширше icon_smile.gif

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

6
 



С нами с 28.11.05
Сообщения: 73
Рейтинг: 11

Ссылка на сообщениеДобавлено: 22/07/06 в 03:35       Ответить с цитатойцитата 

Не трогай массив в памяти!!!
а то получиться такая бяка
удаляеш элемент, НО всем остальным нуна перестроиться ;) т.е. допустим массив 1 2 3 4 5 6 удаляем 3 получается 1 2 пусто 4 5 6
и нуна массив сдвинуть ;) т.е. удалять нуна кучей иначе
бля тормоз будет, лучше найденные елементы копирить в другой массив

а вобще я бы твою проблему решил так
разделяем массив на подмассивы елементов по 1-2k
после обработки одного чистил память и работал с другим
вобще ты как эти 200к элементов получаеш ? если откудато считываеш или генериш то бес проблем сгенерил/считал 2к проверил
на их же мместо/сгенерил считал еще...

-3
 

пенсионер

С нами с 07.11.02
Сообщения: 2612
Рейтинг: 1166

Ссылка на сообщениеДобавлено: 22/07/06 в 11:44       Ответить с цитатойцитата 

myrmyr писал:
Не трогай массив в памяти!!!
а то получиться такая бяка
удаляеш элемент, НО всем остальным нуна перестроиться ;) т.е. допустим массив 1 2 3 4 5 6 удаляем 3 получается 1 2 пусто 4 5 6
и нуна массив сдвинуть ;)

лол, откуда такая инфа? :-) можно ссылку на источник? ;)

Здесь ищу и даю работу^так делаю деньги
тут читаю инфу^веду блог, а вы?

2
 



С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579

Ссылка на сообщениеДобавлено: 22/07/06 в 12:05       Ответить с цитатойцитата 

он вообще похоже не в тот топик(?) отпостил

ВОСТОРГ ЗНАЧИТ BMW

0
 



С нами с 28.11.05
Сообщения: 73
Рейтинг: 11

Ссылка на сообщениеДобавлено: 22/07/06 в 17:13       Ответить с цитатойцитата 

мля пацаны, действительно не сюда запостил а все же как думаеш топик стартер может тебе просто разбить архив на части ? т.е. будет такойже архив
arr[][][][]
но элементов поменьше и когда их обработаеш поиском или еще чем
грузим в этот же архив следующую партию так и избежим лишней загрузки памяти ?

-3
 



С нами с 28.11.05
Сообщения: 73
Рейтинг: 11

Ссылка на сообщениеДобавлено: 22/07/06 в 17:17       Ответить с цитатойцитата 

bog писал:
лол, откуда такая инфа? :-) можно ссылку на источник? ;)


хехе ну скажи мне как массив в памяти храниться ? давай подробно

-3
 

пенсионер

С нами с 07.11.02
Сообщения: 2612
Рейтинг: 1166

Ссылка на сообщениеДобавлено: 22/07/06 в 21:05       Ответить с цитатойцитата 

myrmyr писал:
хехе ну скажи мне как массив в памяти храниться ? давай подробно


ну начни изучение с этой статьи. там вроде довольно популярно разжевывали тонкости внутренней архетиктуры.
http://www.webreference.com/programming/php_mem/

Здесь ищу и даю работу^так делаю деньги
тут читаю инфу^веду блог, а вы?

6
 



С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579

Ссылка на сообщениеДобавлено: 22/07/06 в 22:21       Ответить с цитатойцитата 

myrmyr писал:
мля пацаны, действительно не сюда запостил а все же как думаеш топик стартер может тебе просто разбить архив на части ? т.е. будет такойже архив
arr[][][][]


я, к счастью, уже знаю о функции array_chunk. если ты считаешь, что разбитый подобным образом массив занимает меньше памяти, ты ошибаешься.

Цитата:
ну начни изучение с этой статьи. там вроде довольно популярно разжевывали тонкости внутренней архетиктуры.
http://www.webreference.com/programming/php_mem/


Спасибо за ссылку. +6

ВОСТОРГ ЗНАЧИТ BMW

0
 



С нами с 28.11.05
Сообщения: 73
Рейтинг: 11

Ссылка на сообщениеДобавлено: 23/07/06 в 03:38       Ответить с цитатойцитата 

я не предлагаю разбить массив я предлагаю, генерить его кусочек каждый раз в одном и том же месте ;)

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »