За последние 24 часа нас посетили 23614 программистов и 1604 робота. Сейчас ищут 769 программистов ...

Вопрос о объемах масивов

Тема в разделе "PHP для новичков", создана пользователем BMWSauber, 28 янв 2011.

  1. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    Параллельно изучаю С++ C# и т.п. и там много времени уделяется объемам информации и процессорному времени. А в книгах по PHP я этих вопросов пока не встречал, По сему родился вопрос:

    Сколько оперативы сожрет масив -

    PHP:
    1.  
    2. <?
    3.        $Arr[1000][10] = 'qwerty';
    4. ?>
    5.  
    т.е. 10 000 "пустышек" и одна string;


    и в зависимости от ответа есть еще несколко вопросов.
     
  2. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    PHP:
    1. <?php
    2.  
    3. $Arr[1000][10] = 'qwerty';
    4.  
    5. print_r($Arr);
    6.  
    7. echo $Arr[0][0];
    8. ?>
    Код (Text):
    1. Array
    2. (
    3.     [1000] => Array
    4.         (
    5.             [10] => qwerty
    6.         )
    7.  
    8. )
    9.  
    10. Notice: Undefined offset: 0

    Пока параметр memory_limit не будет превышен, PHP будет работать
     
  3. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    $a_memory = memory_get_usage();
    $Arr = array();
    $Arr[1000][10] = 'qwerty';
    echo (memory_get_usage() - $a_memory);
     
  4. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    вообщето, этой строкой не создается 10 000 элементов. в пхп нужно по другому "забивать" пустыми.
     
  5. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    Всем спасибо...
    to
    то, что хотел услышать...
     
  6. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Давайте начнем с того, почему так.
    В C++ вы сами управляете своей памятью. Там жизненно необходимо знать, сколько ее нужно выделить и отдать обратно. Разработка на C++ направлена на быстродействие и экономию памяти, по-этому там думают о ней много и часто. На C++ часто пишут долгоиграющие программы и демоны - именно из-за быстродействия и потребления памяти - ошибки в работе с памятью в таких программах приводят к утечкам, которые способны доставить проблем всей системе.

    С другой стороны.

    PHP управляет памятью сам, в скриптах не нужно знать ничего про память - интерпретатор сделает все сам и вернет когда нужно. PHP направлен на быстроту разработки и удобство модификации (в том числе и из-за отсутствия необходимости думать про память) и изначально не ставит задачи быстродействия и малой памяти. PHP в 99% - это короткоживущие программы, по-этому утечки памяти никого не волнуют - она будет освобождена интерпретатором, я против утечек памяти в долгоживущих интерпретаторах (типа mod_php) используют банальный способ его перезапуска.

    Исходя из этого вопрос - а зачем вы хотите думать про память в ПХП?