日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

记忆化搜索 递归缓存_需要微缓存吗? 营救记忆

發(fā)布時(shí)間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记忆化搜索 递归缓存_需要微缓存吗? 营救记忆 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

記憶化搜索 遞歸緩存

緩存解決了各種各樣的性能問題。 有很多方法可以將緩存集成到我們的應(yīng)用程序中。 例如,當(dāng)我們使用Spring時(shí),可以輕松使用@Cacheable支持。 非常簡(jiǎn)單,但我們?nèi)匀槐仨毰渲镁彺婀芾砥?#xff0c;緩存區(qū)域等。有時(shí),就像用大錘砸破堅(jiān)果一樣。 那么我們?cè)撛趺醋霾拍堋按蚧饳C(jī)”呢?

有一種稱為記憶的技術(shù)。 從技術(shù)上講,它就像餡餅一樣容易,但真正的天才在于簡(jiǎn)單。 模型解決方案如下所示:

public Foo getValue() {if (storedValue == null) {storedValue = retrieveFoo();}return storedValue; }

如您所見,手動(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。