---
title: 配列とメモリ
tags: 
author: [Katsushi21](https://www.docswell.com/user/Katsushi21)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LELZLWL9JR.jpg?width=480
description: 配列とメモリ by Katsushi21
published: January 18, 24
canonical: https://www.docswell.com/s/Katsushi21/Z7VMWN-2024-01-18-000858
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LELZLWL9JR.jpg)

1/11
配列とメモリ


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4JMVM9MVJW.jpg)

2/11
配列の内容とメモリ消費の調査
・0 ～ 10万までの数値を配列に格納
・メモリ消費量はmemory_get_usage(true)で算出
・memory_get_usage()にtrueを渡すことで
実際には使われなかったメモリも取得し、
より正確なシステムへの負荷を測定できる


# Page. 3

![Page Image](https://bcdn.docswell.com/page/PJR2VGVWE9.jpg)

3/11
キーと値が整数の場合
約6MB


# Page. 4

![Page Image](https://bcdn.docswell.com/page/PEXDZXZV7X.jpg)

4/11
キーが文字列、値が整数の場合
約6MB
キーを文字列にした場合はメモリに影響なし


# Page. 5

![Page Image](https://bcdn.docswell.com/page/3EKX8W857D.jpg)

5/11
キーが整数、値が文字列の場合
約8MB
値を文字列にした場合はメモリ消費が大きくなる


# Page. 6

![Page Image](https://bcdn.docswell.com/page/L7352121E5.jpg)

6/11
キーが整数、値が連想配列の場合
約44MB
連想配列にすると、メモリ消費量が激増する


# Page. 7

![Page Image](https://bcdn.docswell.com/page/87DDZXZK7G.jpg)

7/11
キーが整数、値に3つのキーをもつ連想配列の場合
約48MB
DBからデータを取得すると、このような形の配列となることが多い。
連想配列のキーを増やしても、メモリ消費量の変化は小さい。


# Page. 8

![Page Image](https://bcdn.docswell.com/page/VJPXDPD378.jpg)

8/11
キーが整数、値が連想配列をもつ連想配列の場合
約82MB
連想配列の階層数をさらに増やすと、メモリへの影響がとても大きくなる


# Page. 9

![Page Image](https://bcdn.docswell.com/page/2EVL121NJQ.jpg)

9/11
キーが整数、値に3つの値をもつ連想配列を
3つの配列に分けた場合
約19MB
ひとつの配列にまとめず、別々の配列とした方が
メモリ消費は少ない


# Page. 10

![Page Image](https://bcdn.docswell.com/page/57GX2R25EL.jpg)

10/11
キーが整数、値に3つのキーをもつ連想配列を
オブジェクトにした場合
約21MB
オブジェクトとすると、同じ配列でもメモリ消費量が抑えられる


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4EQ8PVPLJP.jpg)

11/11
まとめ
・数値よりも文字列の方がメモリ消費量が大きい
・配列の階層が深いほどメモリ消費量が大きい
・配列をオブジェクトとして保持することで、メモリ消費量を軽減できる


