记忆化搜索 递归缓存_需要微缓存吗? 营救记忆
記憶化搜索 遞歸緩存
緩存解決了各種各樣的性能問題。 有很多方法可以將緩存集成到我們的應(yīng)用程序中。 例如,當(dāng)我們使用Spring時(shí),可以輕松使用@Cacheable支持。 非常簡(jiǎn)單,但我們?nèi)匀槐仨毰渲镁彺婀芾砥?#xff0c;緩存區(qū)域等。有時(shí),就像用大錘砸破堅(jiān)果一樣。 那么我們?cè)撛趺醋霾拍堋按蚧饳C(jī)”呢?
有一種稱為記憶的技術(shù)。 從技術(shù)上講,它就像餡餅一樣容易,但真正的天才在于簡(jiǎn)單。 模型解決方案如下所示:
如您所見,手動(dòng)實(shí)現(xiàn)它沒有問題,但是只要我們記得DRY規(guī)則,我們就可以使用已經(jīng)實(shí)現(xiàn)的解決方案,該解決方案還提供了線程安全性。 很好的主意是使用Guava庫(kù)。
// create Supplier<Foo> memoizer = Suppliers.memoize(this::retrieveFoo);// and use Foo variable = memoizer.get();有時(shí)就足夠了,但是如果我們需要為值指定TTL怎么辦? 我們只需要存儲(chǔ)(緩存)取回的值幾秒鐘,并且在超過定義的持續(xù)時(shí)間后再獲得一次該值? 我們可以再使用Guava提供的功能。
Supplier<Foo> memoizer = Suppliers.memoizeWithExpiration(this::retrieveFoo, 5, TimeUnit.SECONDS);上一行建立了帶有TTL = 5秒的備忘錄。 如您所見-簡(jiǎn)單……但功能強(qiáng)大!
翻譯自: https://www.javacodegeeks.com/2014/11/need-micro-caching-memoization-to-the-rescue.html
記憶化搜索 遞歸緩存
總結(jié)
以上是生活随笔為你收集整理的记忆化搜索 递归缓存_需要微缓存吗? 营救记忆的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 儿童平板电脑(儿童平板电脑排行榜)
- 下一篇: primefaces_使用Bean验证扩