1

Raven.Server が起動し、ポート 8022 にバインドされました。次の方法で DataStore を初期化します。

        var store = new DocumentStore() { Url = "http://localhost:8022" };
        store.Initialize();

次に、そのようなクエリを作成しています:

        using (var session = store.OpenSession())
        {
            Stopwatch watch = new Stopwatch();
            watch.Start();

            var result = session.LuceneQuery<Item>("Raven/DocumentsByEntityName")
                .WhereEquals("Tag", "Items")
                .ToList();

            watch.Stop(); // watch.ElapsedMilliseconds == ~550 ms

            return result;

        }

そしてwatch.ElapsedMilliseconds常に〜550ミリ秒です。しかし、RavenDB コンソールを見ると、クエリが 3 ミリ秒で処理されていることがわかります。

Request # 170: GET     -    3 ms - 200 - /indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128

したがって、時間の ~ 99.5% は RavenDB 以外で費やされています。何が問題ですか?(RavenDB 147)

RavenDB のセルフホスティング (つまり、組み込みクライアントとして) に切り替えると、すべて問題ありません (~3ms)。

ネットワーク、httpデバッガー、dnsサーバーなどではないその問題を明確にするために、これもテストしました:

            Stopwatch watch = new Stopwatch();
            watch.Start();

            WebClient client = new WebClient();
            var result = client.DownloadString("http://127.0.0.1:8022/indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128");

            watch.Stop(); // watch.ElapsedMilliseconds == ~3-10ms

速い。ただし、Raven.Client.Lightweight に切り替えると、応答時間が 200 倍 (550 ~ 600 ミリ秒) 増加します。

4

2 に答える 2

6

問題は私のコンピューターの仲介者のせいでした-NOD32。それも使用している場合は、次のチェックボックスをオフにします。

セットアップ->詳細セットアップ->ウイルス対策とスパイウェア対策->プロトコルフィルタリング->「アプリケーションプロトコルコンテンツフィルタリングを有効にする」

ウイルス対策またはファイアウォールを単純に無効にしても効果はありません

于 2010-09-29T15:13:14.297 に答える
0

たぶん、つまらないことや単なるタイプミスかもしれませんが、時には最も愚かなことで私たちを怒らせることがあります。

あなたの声明:「 Raven.Server が起動し、ポート8082にバインドされました。次の方法で DataStore を初期化します。」

コード例は次のとおりです。「var store = new DocumentStore() { Url = "http://localhost: 8022 " };"

タイトルのポートは8082で、例のポートは8022です

あなたのタイプミスは実際のコードにはないかもしれませんが、チェックするのは決して悪いことではありません。

'm jus' sayin'

P

于 2010-09-28T13:43:23.070 に答える