在Windows / C#上加速Redis

时间:2013-04-10 16:16:20

标签: c# redis servicestack

我正在我的本地机器上试验Redis。到目前为止,我已经让它工作了,虽然非常慢慢地。

我有一个大约14,000个对象的数组,每次检索它们只需要3秒钟,这对于生产来说显然太慢了。

我觉得花费的大部分时间都是对对象进行反序列化,但是我不确定我是否可以采取任何措施来解决这个问题。

我可以将它们存储在第一位而不将它们序列化(如果这有意义的话)? 如果做不到这一点,我能做些什么来加速反序列化过程?我已经实现了ISerialization,但它似乎没有任何区别。

参考我使用Redis的ServiceStack改编。

1 个答案:

答案 0 :(得分:3)

  

除非你衡量,否则你不会知道。

     

[来源:我的一位聪明的开发经理,大约1992年!]

在指责所谓的罪魁祸首之前,您应首先剖析/测量您的代码,以确定您的性能问题的确切位置。然后实施修复并重新测量。重复直到你的性能令人满意。

可以使用许多分析器,包括Visual Studio's built-in profiler,其他分析器可用作加载项(例如RedGate's Ants profilerJetBrains' dotTraceTelerik's JustTrace等。)

或者,尝试使用Trace.WriteLine(...)Stopwatch来检测代码,以便计算数据访问操作执行所需的时间以及反序列化数据所需的时间。

FWIW,如果最新版本的Redis运行速度与您在Windows或任何其他操作系统上看到的速度一样慢,我会感到惊讶。哎呀,即使是SQL Server Express(2012)也可以返回199000行,并以不到1秒的速度将它们存储在CSV中: enter image description here