too slow to unset big array (after mem fragment)
| From: | Xuefer Tinys | Date: | Wed, 19 Jan 2005 17:09:55 +0000 |
| Subject: | too slow to unset big array (after mem fragment) | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-206756@lists.php.net to get a copy of this message | ||
i have a big array with 20k elements, i have no problem building it,
because the elements is recv from socket, i can socket_select() on 1k
clients, read from them.
i plan to unset the whole array every 1hour
this is a not big problem when for a few times, it takes me 0.02 seconds
but after many hours of running, unset will sometime takes 10 seconds.
this is big problem because it's 1 unset() statement, and all incoming
connection is blocked, the client may get connection time out
summary:
1. one process, no fork (just has to be)
2. socket_select(), process each client's data simultaneously. some
data will be put into array
3. each element value is /true/, and key is numeric(ip2long)
$array[ip2long($ip)] = true;
4. fast to unset, but slow to unset after a few hours, with similar
amount of elements