Excellent, the localized caching is a good idea. Ondrej
On Wed, Aug 7, 2013 at 9:32 PM, Gilbert Gede <[email protected]> wrote: > 130 MB w/ no caching added, 150 MB w/ Derivative.new() cached, 160 MB w/ > Derivative.new() and Basic.free_symbols() cached. > > I'm going to work on this semi-localized cache thing right now. > > > On Wed, Aug 7, 2013 at 6:44 PM, Aaron Meurer <[email protected]> wrote: >> >> On Wed, Aug 7, 2013 at 6:04 PM, Gilbert Gede <[email protected]> >> wrote: >> > So, just applying @cacheit to Derivative.new() provides the 60% >> > reduction in >> > time for the bike test, and all SymPy tests pass. I also tried cacheing >> > Basic.free_symbols. That (combined with the Derivative.new() cache) gave >> > a >> > 87% reduction in time for the bike test (~150s -> ~20s). Unfortunately, >> > a >> > lot of tests failed or raised exceptions... >> >> But what about memory use? >> >> > >> > Anyways, I think we'd want to check if the cache was on at the beginning >> > of >> > one of these higher-level functions, and only clear it if the >> > higher-level >> > function itself turned on caching, right? To avoid other methods >> > prematurely >> > clearing the cache? >> >> Yeah, I guess the context manager should increment and decrement a >> count. Or each context manager has its own cache as I suggested and >> if you are in multiple contexts, then multiple caches are updated. >> >> This is all actually pretty easy to implement if someone wants to give it >> a go. >> >> Aaron Meurer >> >> > I actually think having independent caches could be nice, because in >> > mechanics I doubt we'd get into problems w/ assumptions, but using one >> > cache >> > throughout the duration of a problem might speed things up (I'm not sure >> > by >> > how much though). >> > >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups >> > "sympy" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> > an >> > email to [email protected]. >> > To post to this group, send email to [email protected]. >> > Visit this group at http://groups.google.com/group/sympy. >> > For more options, visit https://groups.google.com/groups/opt_out. >> > >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/sympy. >> For more options, visit https://groups.google.com/groups/opt_out. > > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sympy. > For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
