मैं कुछ समय के लिए हमारी कुछ परियोजनाओं के लिए एक अच्छा नोएसक्यूएल डेटाबेस ढूंढ रहा हूं और मैंने हाल ही में रावेनडीबी की खोज की है जो एक .NET समर्थन परिप्रेक्ष्य से बहुत बढ़िया दिखता है, इसलिए मैंने इसे थोड़ा सा बेंचमार्क लिखने और लिखने का फैसला किया। व्यवसाय का पहला डालने की गति का परीक्षण किया गया था, निम्नलिखित कोड का उपयोग कर:रावेनडीबी से मुझे किस स्तर के प्रदर्शन की उम्मीद करनी चाहिए?
class Program
{
private const int TEST_COUNT = 10000;
static void Main(string[] args)
{
var store = new DocumentStore();
store.Url = "http://localhost:8117";
store.Initialize();
var timer = Stopwatch.StartNew();
var session = store.OpenSession();
for (var i = 0; i < TEST_COUNT; i++)
{
session.Store(new TestEntity()
{
Name = "Test Entity"
});
if (i % 127 == 0)
{
session.SaveChanges();
session.Dispose();
session = store.OpenSession();
}
}
session.SaveChanges();
session.Dispose();
timer.Stop();
Console.WriteLine("Processed {0:n0} records", TEST_COUNT);
Console.WriteLine("Time elapsed: {0:n0} ms", timer.ElapsedMilliseconds);
Console.WriteLine("Records/sec: {0:n0}", TEST_COUNT/(timer.ElapsedMilliseconds/1000d));
}
}
class TestEntity
{
public string Name { get; set; }
public DateTime Created { get; set; }
public TestEntity()
{
Created = DateTime.UtcNow;
}
}
उत्पादन इस प्रकार है के रूप में:
Processed 10,000 records
Time elapsed: 9,531 ms
Records/sec: 1,049
Press any key to continue . . .
यह एक अपेक्षाकृत तेजी से मशीन पर है (3ghz, 2GB RAM विंडोज 7 चल रहा है)
मुझे पागल कहो, लेकिन 1000 आवेषण/सेक बहुत धीमी है, खासतौर पर उन दस्तावेज़ों के लिए जिनमें केवल दो फ़ील्ड हैं। क्या इसकी उम्मीद की जानी चाहिए थी? मुझे पता है कि रावेनडीबी को पढ़ने के लिए अनुकूलित किया गया है, लिखता नहीं है, लेकिन यह बहुत बुरा है।
क्या आपने गर्म अवधि की अनुमति दी, जैसे कि जेआईटी और अन्य स्टार्टअप गतिविधियों को बाहर निकाला गया? –