最近了解了一下LevelDB,發覺這個嵌入式的K-V數據性能不錯,所以順便想在使用層面了解一下.由於LevelDB也有針對.net的實現,所以就針對了LevelDB.NET進行了一個簡單的讀寫壓力測試.為了更客觀的體現測試結構所以添加了大量的數據,和GET操作的時候隨機已經有的KEY進行.
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20public
static
void
WriteTest(
object
state)
{
while
(
true
)
{
User user =
new
User();
string
id = GetKey().ToString(
"000000000000000000000"
);
user.Name = id;
user.EMail = id +
"@msn.com"
;
user.CrateTime = DateTime.Now;
user.City =
"GZ"
+ id;
user.Country =
"CN"
+ id;
user.Address =
"sdfffffffffffffffffffffffffafjsdfjsljfsjfls"
+id;
user.Phone = id;
user.Region =
"gd"
;
db.Set(user.Name, user);
System.Threading.Interlocked.Increment(
ref
mCount);
}
}
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16while
(
true
)
{
User user;
int
index = ran.Next(100000, 500000);
if
(index == li)
{
Console.WriteLine(index);
}
li = index;
user = db.Get<User>(index.ToString(
"000000000000000000000"
));
System.Threading.Interlocked.Increment(
ref
mIndex);
System.Threading.Interlocked.Increment(
ref
mCount);
}
LevenDB.Net的寫入速度非常高效,在單線程寫入的情況都可以達到接近5W/秒的效率,而在獲取上的效率更高5線程的並發讀竟然可以達到15W/秒的能力....這讀效果是相當的可觀.