0

我有一个使用依赖注入的 Web 应用程序,允许我在缓存实现之间轻松交换。我目前正在使用 asp.net 运行时缓存,但 Web 应用程序现在需要分布在三个 Web 服务器上。我已经构建了一个 Memcache 的实现并对其进行了测试并且它可以工作,但我对速度不满意。我相信原因是因为序列化和反序列化。我不知道如何加快速度。

我可以 -

  • 离开它,希望用户体验不会变得很糟糕
  • 让一些数据使用运行时缓存,一些数据使用 memcache
  • 弄清楚如何提高 memcache 的性能

ps 我试图避免使用 proto-buf 进行序列化/反序列化,因为我不想用属性装饰我的整个域(或者也许我应该?)

建议?

4

1 回答 1

0

那么你怎么知道它变慢了呢?或者你怎么知道它是序列化?

我最近花了很多时间在性能优化上,在提出解决方案之前,我必须说您需要首先根据确凿的事实来探索问题:

  1. 在没有 memcached 的情况下建立基线基准
  2. 使用 memcached 运行相同的基准测试并进行比较
  3. 如果它确实较慢,请使用分析工具来确定您的瓶颈到底在哪里
  4. 确定瓶颈后,尝试隔离该代码区域并在项目之外创建一个隔离的测试用例。然后尝试找出为什么需要更长的时间并尝试不同的方法。(当时我和其他人可以帮助你)

根据我的经验,序列化不应该那么慢。

为了进行基准测试,您可以免费使用 ab.exe 或 jmeter。

于 2012-12-15T15:52:50.613 回答