首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是DLR三级缓存策略

什么是DLR三级缓存策略
EN

Stack Overflow用户
提问于 2010-11-11 17:54:42
回答 1查看 190关注 0票数 1

我刚听说DLR有一个三级缓存策略..但它是什么..。一个简单的解释和简单的例子将是非常有用的。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-11 18:13:10

这就是我对它的理解,缓存的想法是尽可能重用表达式,以减少动态表达式求值的动态与静态开销。

想象一个动态表达式

代码语言:javascript
运行
复制
>> a + b

然后在第一次需要创建表达式/语法树时解决这个问题(如果不存在这样的树)。它的类型是

代码语言:javascript
运行
复制
if a is an int and not null and b is an int and not null then result = a + b

这本质上是一个可以求值的规则,如果为真,则可以使用表达式。因此,我们有一个一级缓存。

级别2类似,但它是一个更复杂的规则,可能是这样的:

代码语言:javascript
运行
复制
if a is an int and not null and b is an int and not null then result = a + b
if a is string  and b is an int then do Int.Parse(a) + b
etc...

级别3更复杂。

如果找不到表达式,则会创建一个新的表达式,并将其添加到其中一个缓存中(尽管我对此一无所知)。

据我所知,l1是1条规则,l2大约是10条规则,l3大约是100条规则。

这一切都是我在谷歌上围绕这个主题阅读的。- http://dotnetslackers.com/articles/csharp/Dissecting-C-Sharp-4-0-Dynamic-Programming.aspx - http://msdn.microsoft.com/en-us/magazine/cc163344.aspx

还有其他一些我现在想不起来了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4153142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档