php array performance
- From: "Robert Erstwhile" <ask@xxxxxx>
- Date: Fri, 07 Oct 2005 15:30:38 GMT
Does anyone know if there is any way to improve php array performance?
I am currently developing an application which uses very large
multidimensional arrays, with many multiple dimensions. I am rapidly
discovering that php seems to be quite weak in this area.
I have finally found a way to "allocate" the memory for php arrays
reasonably quickly and efficiently. The following code segment runs in
approx 0.03seconds and doesn't use too much memory ~ 20mb.
$array = array_fill(0,1,array_fill(0,73,array_fill(0,100001,0.01)));
However if I try to fill the array using a bunch of nested loops it uses
100s of mbs and takes a lot longer to execute. Plus if I want to change any
values within this array structure it seems to have the same effect (poor
performance). It seems like due to the way arrays are implemented within php
the environment rebuilds the array in memory everytime you make any change
to an element within the array; which is expensive.
After much reading around the subject it seems that arrays in php are not
*really* arrays at all but hash-tables, or "maps" according to the
documentation.
Does anyone know if there is any alternative data-structures to the array in
php that work more efficiently in multiple dimensions, or any other thoughts
on overcoming this problem. If I don't figure it out I'm probably going to
have to rewrite the thing in CGI/C++ to get the array performance; which I
would rather not do.
Thanks in advance.
.
- Prev by Date: Re: executing PHP from my website
- Next by Date: php ide editor
- Previous by thread: PHP_INI_PERDIR on Windows
- Next by thread: php ide editor
- Index(es):
Relevant Pages
|