PHP: Как глубина массива повлияет на производительность? - PullRequest
0 голосов
/ 13 октября 2010

Теперь я знаю, что есть некоторые связанные вопросы по этой теме, но это несколько уникально.

У меня есть две структуры массива:

array(
    [0] => array(
        'stat1' => 50,
        'stat2' => 12,
        'stat3' => 0,
        'country_name' => 'United States'
        ),
    [1] => array(
        'stat1' => 40,
        'stat2' => 38,
        'stat3' => 15,
        'country_name' => 'Ireland'
        ),
    [2] => array(
        'stat1' => 108,
        'stat2' => 0,
        'stat3' => 122,
        'country_name' => 'Autralia'
        )
    )

и второй

array(
    'stat1' => array(
        'countries' => array(
            'United States' => 50,
            'Ireland' => 40,
            'Autralia' => 108,
            )
        )
    ),
'stat2' => array(
        'countries' => array(
            'United States' => 12,
            'Ireland' => 38,
            )
        )
    ),
etc...

Второй массив может перейти даже на уровень 4 или 5, если вы добавите города этих стран. Далее следует отметить, что вторая структура массива не будет иметь нулевых полей данных (обратите внимание, что во второй структуре нет Австралии, поскольку она равна 0), но первая структура будет иметь целый набор нулей. Также обратите внимание, что вторая структура будет иметь дубликаты, т.е. «Соединенные Штаты»

У меня такой вопрос: как эти структуры массивов сравниваются, когда они json_encode() и используются в запросе ajax POST? Будет ли массив малой глубины с его множеством нулей быстрее или лучше структурированный массив будет лучше с точки зрения размера?

1 Ответ

1 голос
/ 14 октября 2010

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

Структура массива 1 -Все данные о городе и стране выводятся в 68 КБ

Структура массива 2 - Все данные о городе и стране выводятся в 71 КБ

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

Я не проверял микро времена разницы в загрузке, но для пользователя, чтобы посмотреть изображение загрузки .gif в течение 0,0024 мкс (я снимаю случайное время ради аргумента), не делаетбольшая вмятина в удобстве использования в любом случае.Спасибо всем за комментарии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...