Re: weak references
| From: | Ferenc Kovacs | Date: | Sun, 17 Jul 2011 14:20:40 +0000 |
| Subject: | Re: weak references | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-53993@lists.php.net to get a copy of this message | ||
On Sun, Jul 17, 2011 at 3:04 PM, Lars Schultz <lars.schultz@toolpark.com> wrote:
> I too would welcome a solution to this problem, I've run into it several
> times already and always had to use a semi-satisfactory solution. I hadn't
> heard about weak-references before, and I generally like the concept. What I
> am not so sure is wether this makes everything alot more complicated for
> users who do not know/care about the problem or the solution. Of course the
> impact on those users depends on the actual solution.
>
> I came at the problem from a different angle and came to a different
> solution: If I could get the refcount on a certain object, and kept the
> object stored centrally in one list, I'd know that if the refcount is down
> to 1 (or some other constant) that the object ist not in use anymore. I
> believe that this would be quite a simple PHP addition...a simple function
> called: get_ref_count() or something and as I remember, that value is always
> stored in the zval...
>
> The only other thing that would help would be a callback (or callable) which
> is triggered by PHP reaching a certain memory-limit, absolute or relative..
> Then I could clean up memory according to my own business-logic...
>
> This way, PHP would not feature something totally new, but one could still
> solve the problem with some work.
>
> Do I make any sense at all? Am I missing the point? Anyway, this is an
> interesting problem.
>
> Cheers.
> Lars
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
we have debug_zval_dump but it is hard to use correctly (see the
notes) and xdebug has xdebug_debug_zval which is slightly better, but
it is not part of the language.
with weak references, you wouldn't need to worry about keeping a count
of the refcount only check the valid() method.
for your last paragraph: that's totally unrelated to weak references,
but you could achive what you want through memory_get_usage() +
unsetting your unnedid variables and maybe calling
gc_collect_cycles().
btw. if I remember correctly, somebody requested a non-fatal callback
when memory limit is reached callback functionality, I have to look
that up.
--
Ferenc Kovács
@Tyr43l - http://tyrael.hu