[PEAK] Trellis + expensive operations

Christopher Stelma chris at digsby.com
Tue Nov 25 18:29:15 EST 2008


I'm trying to avoid some unnecessary computation, and I feel I must be
missing something, either in terms of Trellis API or approach to the
problem.

I have a value y which depends on x.  x would be a trellis managed piece of
data.  The computation of y from x is expensive.

Right now, I have a pattern something like:

class A(object):
    x = None
    last_x = None
    last_y = None
    @property
    def y(self):
        if self.x != self.last_x:
            self.last_y = some_expensive_calculation(self.x)
        return self.last_y

I would like to accomplish something equivalent with Trellis attributes or
Cells, so that I don't have to repeat the computation unless the computed
value would change.  Using a maintenance rule, y would be recomputed every
time some dependency in x changed.  Using a compute rule, y is recomputed
every time I access y.  My goal is to be able to set x some number of times,
followed by accessing y some number of times, but only ever do the
calculation once.  I realize that this effect may be achieved by an optional
maintenance rule, but I'd like the same effect for every set of x and every
access of y, not just the first access of y.

-- 
Christopher Stelma
chris at digsby.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.eby-sarna.com/pipermail/peak/attachments/20081125/57830106/attachment.html


More information about the PEAK mailing list