Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance RavenDB反序列化似乎很慢_Performance_Ravendb - Fatal编程技术网

Performance RavenDB反序列化似乎很慢

Performance RavenDB反序列化似乎很慢,performance,ravendb,Performance,Ravendb,我一直在玩RavenDB(构建531),但我似乎无法获得正确的性能 我有一节简单的课 public class Cat { public string Id {get; set;} public string Name {get; set; } 我随机创造了大约200只猫,把它们放到RavenDB 但是当我去拿一只猫时,通过 session.Load<Cat>("cats/<GUID>"); session.Loa

我一直在玩RavenDB(构建531),但我似乎无法获得正确的性能

我有一节简单的课

    public class Cat
    {
      public string Id {get; set;}
      public string Name {get; set;
    }
我随机创造了大约200只猫,把它们放到RavenDB

但是当我去拿一只猫时,通过

   session.Load<Cat>("cats/<GUID>");
session.Load(“cats/”);
大约需要700毫秒

RavenDB中的调试窗口如下所示

    Request # 156: GET - **0 ms** - <default>-200-/docs/cats/<GUID>
Request#156:GET-**0 ms**--200-/docs/cats/
它返回正确的Cat,但是反序列化似乎需要很长时间

我试图对一个文件的输出进行反序列化,看看这是否真的是罪魁祸首,但我似乎不知道怎么做

想法

编辑:我试着反序列化一个普通的旧Cat对象,耗时100毫秒

Edit2:以下是答案

似乎有一些重大的启动成本

如果在我的第一只猫之后再抓到其他猫,我的性能会显著提高,达到<100毫秒


因此,为什么不只使用一次获取进行基准测试。

这里可能会发生一些事情

  • 你在使用索引吗
  • 你有没有给文档库打过电话。。你以前问过这个问题吗
  • 一般来说,原因是

  • 对文档服务器的第一个客户端调用具有一些初始设置命中率
  • 索引可能需要索引-例如动态索引
  • 更多细节。。。 在RavenDB文档存储中首次使用任何数据时。。需要编制一些索引。当执行查询且未使用(或猜测)索引时,会发生这种情况。我认为当索引第一次创建时也会发生。。但我不是100%确定

    所以一般来说,很多人首先只是尝试在没有索引的情况下查询文档存储。第一次击中总是昂贵的。创建初始文档存储(在客户端)非常昂贵。如果第一次执行该查询时,它是一个动态索引。。然后,必须创建索引,编制索引,然后返回给客户机


    因此,第一次点击需要一些初步的准备工作。

    请发布您在该主题上的发现并接受您的答案,以便它可以帮助处于相同情况下的其他人。我正在使用动态索引进行查询,但索引已经建立。性能问题是由于文档存储第一次受到攻击造成的。