start | index | login or register | find | edit | |
Online for 7767 days.
sticky snips: no backlinks 27 active users: unknown (27) Recent edits: |
2003-08-22
stick by unknown, a long time ago Ich bin gerade dabei das frei herunterzuladende buch Patterns Of Software anzulesen... jfyi - vielleicht ganz interessant mal hinein zu schnuppern...Memoization in Java Using Dynamic Proxy Classes (via LtU) "Memoization is a technique borrowed from functional programming languages like Lisp, Python, and Perl for giving functions a memory of previously computed values. Memoizing a function adds a transparent caching wrapper to the function, so that function values that have already been calculated are returned from a cache rather than being recomputed each time." "The whole point of using caching is to improve the speed of your application. However, reflection is notorious for its lack of performance. (The gap is closing, though: Bloch reports that in the Sun implementation of J2SE 1.4, reflective calls are typically only twice as slow as normal calls, compared to a forty-fold difference in J2SE 1.3.)" Njo - ich glaub das die idee einen cache über ein klasse laufen zu lassen nicht schlecht ist... ein problem ist halt(wird auch im artikel kurz angesprochen), dass die gechachte methode weder den state der klasse verändern noch - was fast noch wichtiger ist - nicht davon abhängig sein darf.. des weiteren cached (wenn ich das richtig gelesen hab) die Memoizer klasse alle methoden - dh sie meiner ansicht nach, ausschließlich für utility klassen einsetzbar... hmm - hmm - hmm... bei gelegenheit, wenn ich bissi mehr zeit hab, sollt ich mir noch mal gedanken über die sache machen. unknown a long time ago ago:
vgl dazu auch die AOP Caching Challenge. vor allem die [create AspectWerkz] loesung und deren improvement (last 2 links) wuerd ich mir anschaun - is allerdings nix for the faint hearted :) AspectWerkz ist generell im auge zu behalten, neben [create Nanning] ein sehr vielversprechendes AOP system. unknown a long time ago ago: zum caching gibts in sicp das beispiel des "streams as delayed list" - etwa zur berechnung von fibonaci zahlen - berechnest einmal die 100. fibonacci zahl und dann die 101. dann fängt er beim zweiten mal nit bei 0 sondern glei bei 100 an - und das nur dank einer list in der das zweite element (das CDR) eine lambda-expression is, die wiederum eine liste dranhängt, deren CAR ein wert und der CDR eben die selbe lambda is, .... unknown a long time ago ago: earl: werd ich mir auf jeden fall anschauen... in meinem kopf ist eh schon der gedanke aufgeblizt, dass das wahrscheinlich gut mit einem AOP approach zu realisieren ist - aber noch keine zeit gehabt in der richtung ein wenig quer zu lesen -> thx rist: vorerst mal - ein freudiges welcome :) ... auch wenn ich dir auf anhieb nicht 100%ig folgen kann, glaube ich ungefähr zu verstehen, was du meinst... das ist nur schon ein ziemlich spezialisierter anwendungsfall... mir stellt sich momentan unter anderem auch die frage, wie oft ein solches problem vorkommt... gruebel unknown a long time ago ago: ja guten tag - naja die Probleme, die in SICP beschrieben werden sind meist eher akademischer Art und nit soo real life - und hab jetzt nachgesehen - im Beispiel gehts um Primzahlen - und das Beispiel selber is wahrscheinlich nit wirklich das was man als "Memoization" offiziell bezeichnet aber irgendwie schon ähnlich und überhaupt - mitpress.mit.edu/sicp/full-text/book/book-Z-H-24.html#%25_sec_3.5.1 Please log in (you may want to register first) to post comments! No attachments for this snip.
Upload / manage attachments! |
c'est un vanilla site |