1
3
显式地调用一个MethodInfo确实很慢-但是你可以做很多, 许多的 如果将其转换为委托,则速度更快。见 this blog post 例如。当然,这在查找方法等方面没有帮助,但是如果您要重复调用该方法,那么需要记住这一点。 缓存键听起来很容易构建-类型和字符串比较好而且容易。值总是相对简单的:) 一旦建立,缓存将是只读的吗?你能把各个阶段分开吗?这样你就可以保证它在完全建成之前不会被阅读。如果是这样,您应该能够在没有任何显式锁定的情况下离开——基本上是一个字典,从您的自定义键类型到您的自定义值类型。 |
2
1
我同意乔恩的大部分帖子——一个小纸条是字典:从性能的角度来看,你可能想把这个和一个简单的列表作为基准。上一次我做基准测试(字典和简单列表,检查每个项目直到找到匹配项),分界点(用于读取访问)大约是150个项目;低于这个分界点,列表更快(只是简单)。但是做你自己的测试…(我没有可以用来证明这一点的数字)。 根据代码的不同,您可能可以使用泛型进一步拆分数据,即缓存,以便类型t的所有信息都位于一个位置,并填充在静态ctor for cache中。这可能是可能的,也可能是不可能的,这取决于体系结构。 最后,它可能适合,也可能不适合,但是现有的AOP框架(如Postshap)可能有助于简化注入点。 是通用点-在缓存方法上(在in it代码中)创建一个方法的类型化委托非常容易,可以减少需要扫描的数据量-只需要一点type.makeGenericType和delegate.createDelegate-在这一点之后,代码只知道您的func<…>委托,不需要ca关于实施。 |
tincho87 · 避免Javascript/Css缓存 6 年前 |
Zac · 如何强制客户端重新下载我的网站? 6 年前 |
Kumar · bitbake清理使用只读NFS SSTATE缓存失败 6 年前 |
Chris Williams · 休眠/JPA缓存查找值 6 年前 |
Nymeria · 仅绑定到当前事务的Spring缓存 6 年前 |