我正在我的本地机器上试验Redis.到目前为止,我已经让它工作得很慢.
我有一个大约14,000个对象的数组,每次检索它们只需要3秒钟,这对于生产来说显然太慢了.
我有一种感觉,大部分时间花在对对象进行反序列化,但我不确定我是否可以采取任何措施来纠正这个问题.
我可以将它们存储在第一位而不将它们序列化(如果这有意义的话)?
如果做不到这一点,我能做些什么来加速反序列化过程?我已经实现了ISerialization但它似乎没有任何区别.
供我参考使用Redis的ServiceStack改编.
Unless you measure,you will not know.
[Source: A wise dev’ manager of mine,circa 1992!]
在指责所谓的罪魁祸首之前,您应首先剖析/测量您的代码,以确定您的性能问题的确切位置.然后实施修复并重新测量.重复直到你的性能令人满意.
有许多可用的分析器,包括Visual Studio’s built-in profiler,其他可用作加载项(例如RedGate’s Ants profiler,JetBrains’ dotTrace或Telerik’s JustTrace等)
或者,尝试使用Trace.WriteLine(…)和Stopwatch来检测代码,以便计算数据访问操作执行所需的时间以及反序列化数据所需的时间.
FWIW,如果最近的Redis版本运行速度与您在Windows或任何其他操作系统上看到的速度一样慢,我会感到惊讶.哎呀,即使是sql Server Express(2012)也可以返回199000行,并以不到1秒的速度将它们存储在CSV中: