【问题标题】:Memcache and ASP.NET runtime cacheMemcache 和 ASP.NET 运行时缓存
【发布时间】:2012-12-03 06:12:23
【问题描述】:
我有一个使用依赖注入的网络应用程序,让我可以轻松地在缓存实现之间进行交换。我目前正在使用 asp.net 运行时缓存,但 Web 应用程序现在需要分布在三个 Web 服务器上。我已经构建了 Memcache 的实现并对其进行了测试,并且它可以工作,但我对速度不满意。我相信原因是因为序列化和反序列化。我不知道如何加快速度。
我可以——
- 别这样,希望用户体验不会很糟糕
- 让一些数据使用运行时缓存,一些数据使用内存缓存
- 弄清楚如何提高内存缓存的性能
附言我试图避免使用 proto-buf 进行序列化/反序列化,因为我不想用属性装饰我的整个域(或者我应该?)
建议?
【问题讨论】:
标签:
asp.net
caching
memcached
【解决方案1】:
那么你怎么知道它变慢了?或者你怎么知道它是序列化?
我最近花了很多时间在性能优化上,在提出解决方案之前,我必须说您需要先根据确凿的事实探索问题:
- 在没有 memcached 的情况下建立基线基准
- 使用 memcached 运行相同的基准测试并进行比较
- 如果确实比较慢,请使用分析工具来确定您的瓶颈到底在哪里
- 确定瓶颈后,尝试隔离该代码区域并在项目之外创建一个隔离的测试用例。然后尝试找出为什么需要更长的时间并尝试不同的方法。 (当时我和其他人可以帮助你)
根据我的经验,序列化不应该那么慢。
为了进行基准测试,您可以免费使用 ab.exe 或 jmeter。