����Queue��
�첽�����ķ������ᆳ��ʹ�ö���ʵ��������������ģ�ͣ���������Ŷ����⡣PHP��SPL�������ṩ��SplQueue
��չ���õĶ������ݽṹ������PHP������Ҳ�ṩ��array_pop
��array_shift
����ʹ������ģ��������ݽṹ��
SplQueue
$queue = new SplQueue; //��� $queue->push($data); //���� $data = $queue->shift(); //��ѯ�����е��Ŷ����� $n = count($queue);
Array����
$queue = array(); //��� $queue[] = $data; //���� $data = array_shift($queue); //��ѯ�����е��Ŷ����� $n = count($queue);
���ܶԱ�
��Ȼʹ��Array����ʵ�ֶ��У���ʵ�������ܻ�dz����һ�����ķ����������ϣ�����ʹ��SplQueue
��Ϊ�������ݽṹ��
100�������������ӡ����ӣ�ʹ��SplQueue
����2312.345ms
������ɣ���ʹ��Arrayģ��Ķ��еij����������ɲ��ԣ�CPUһֱ������100%�����͵�1������Ҳ��Ҫ260ms
������ɲ��ԡ�
SplQueue
$splq = new SplQueue; for($i = 0; $i < 1000000; $i++) { $data = "hello $i\n"; $splq->push($data); if ($i % 100 == 99 and count($splq) > 100) { $popN = rand(10, 99); for ($j = 0; $j < $popN; $j++) { $splq->shift(); } } } $popN = count($splq); for ($j = 0; $j < $popN; $j++) { $splq->pop(); }
Array����
$arrq = array(); for($i = 0; $i <1000000; $i++) { $data = "hello $i\n"; $arrq[] = $data; if ($i % 100 == 99 and count($arrq) > 100) { $popN = rand(10, 99); for ($j = 0; $j < $popN; $j++) { array_shift($arrq); } } } $popN = count($arrq); for ($j = 0; $j < $popN; $j++) { array_shift($arrq); }