phpの書初め?がてら先日ふと気になったことがあったので検証してみました。
変数で値を持つのと定数(DEFINE)で値を持つとなにが違うのかと・・・
■ 検証1 Write
以下のコードを用いて検証
DEFINE (test1.php)
<?php define('P_1','1'); define('P_2','2'); define('P_3','3'); define('P_4','4'); define('P_5','5'); define('P_6','6'); define('P_7','7'); define('P_8','8'); define('P_9','9'); define('P_10','10'); define('P_11','11'); ・・・10万まで繰り返す・・・ define('P_100000','100000'); echo memory_get_usage(); ?>
変数 (test2.php)
<?php $P_1 = 1; $P_2 = 2; $P_3 = 3; $P_4 = 4; $P_5 = 5; $P_6 = 6; $P_7 = 7; $P_8 = 8; $P_9 = 9; $P_10 = 10; $P_11 = 11; ・・・10万まで繰り返す・・・ $P_100000 = 100000; echo memory_get_usage(); ?>
結果
$ time php test1.php 53942304 real 0m0.513s user 0m0.465s sys 0m0.047s
$ time php test2.php 38990512 real 0m11.841s user 0m11.800s sys 0m0.030s
Writeの部では DEFINE のほうが早いようです。ただし反面して
変数定義のほうがメモリ使用量が少ないことが判明
変数の長さとか関係あるのかな?と思い以下コードも念のため実行
DEFINE
<?php define('P_000001','000001'); define('P_000002','000002'); define('P_000003','000003'); define('P_000004','000004'); define('P_000005','000005'); define('P_000006','000006'); define('P_000007','000007'); define('P_000008','000008'); define('P_000009','000009'); define('P_000010','000010'); define('P_000011','000011'); define('P_000012','000012'); ・・・10万まで繰り返す・・・ define('P_100000','100000'); echo memory_get_usage(); ?>
変数
<?php $P_000001 = 000001; $P_000002 = 000002; $P_000003 = 000003; $P_000004 = 000004; $P_000005 = 000005; $P_000006 = 000006; $P_000007 = 000007; $P_000008 = 000008; $P_000009 = 000009; $P_000010 = 000010; $P_000011 = 000011; ・・・10万まで繰り返す・・・ $P_100000 = 100000; echo memory_get_usage(); ?>
結果
$ time php test3.php 53942304 real 0m0.507s user 0m0.453s sys 0m0.054s
$ time php test4.php 38990512 real 0m12.174s user 0m12.133s sys 0m0.029sはい、変わりませんでした~
引き続き readの検証に移ります
0 件のコメント:
コメントを投稿