日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

msmq发送速度的测试

發(fā)布時間:2025/3/17 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 msmq发送速度的测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


在一些并發(fā)量比較高的"中小型"應用中,如果短期內有大量的數據插入,利用msmq中轉是一個不錯的選擇(petshop就是這么干的),想知道m(xù)smq一秒鐘內到底能發(fā)多少條記錄嗎?

?

?

?1?using?System;
?2?using?System.Diagnostics;
?3?using?System.Messaging;
?4?using?System.Collections.Generic;
?5?
?6?namespace?MsgLimit
?7?{
?8?????class?Program
?9?????{
10?????????static?void?Main(string[]?args)
11?????????{????????????
12?
13?????????????MessageQueue?queue?=?new?MessageQueue("jimmyibm\\private$\\msg");
14?
15?????????????Stopwatch?stopWatch?=?new?Stopwatch();
16?
17?????????????stopWatch.Start();
18?
19?????????????const?int?MAX_NUMBER?=?5000;
20?
21?????????????for?(int?i?=?1;?i?<=?MAX_NUMBER;?i++)
22?????????????{
23?????????????????Message?msg?=?new?Message();
24?????????????????//這里隨便設點兒測試值
25?????????????????msg.Label?=?i.ToString();
26?????????????????msg.Body?=?i.ToString().PadLeft(8,?'0');
27?????????????????//msg.Recoverable?=?true;//設置消息可恢復(即服務器重啟后,消息還在,但是啟用這個選項將會使發(fā)送時間加倍,因為"可恢復"的機制就是先在服務器硬盤生成文本文件,多了一次寫文件的IO操作)
28?????????????????queue.Send(msg);
29?????????????}
30?
31?????????????stopWatch.Stop();
32?
33?????????????Console.WriteLine("{0}條發(fā)送完成,共耗時:{1}秒,平均每秒發(fā)送{2}條!",?MAX_NUMBER,?stopWatch.ElapsedMilliseconds?/?1000,?MAX_NUMBER?/?(stopWatch.ElapsedMilliseconds?/?1000));
34?
35?????????????int?j?=?0;
36?
37?????????????stopWatch.Reset();
38?????????????stopWatch.Start();
39?
40?????????????//List<Message>?listMsg?=?new?List<Message>();
41?????????????while?(true)
42?????????????{
43?????????????????try
44?????????????????{
45?????????????????????Message?msg?=?queue.Receive(new?TimeSpan(0,?0,?0,?0,?1));
46?????????????????????
47?????????????????????//可以做一些事情,比如每50條就批量入一次庫(這比原來一條一條的直接插入數據到db會快得多)
48?????????????????????//listMsg.Add(msg);
49?????????????????????//if?(listMsg.Count?>=?50)?
50?????????????????????//{
51?????????????????????//????//利用事務批量入庫
52?????????????????????//????listMsg.Clear();//操作完成后清空
53?????????????????????//}
54?????????????????????j++;
55?????????????????????System.Threading.Thread.Sleep(1);
56?
57?????????????????}
58?????????????????catch
59?????????????????{
60?????????????????????stopWatch.Stop();
61?????????????????????Console.WriteLine("{0}條記錄接收完成,耗時{1}秒!",?j.ToString(),?stopWatch.ElapsedMilliseconds?/?1000);
62?????????????????????break;
63?????????????????}
64?????????????}
65?
66?????????????Console.ReadLine();
67?????????}
68?????}
69?}
70?
71?

?

在我的IBM T60上跑出來的結果,大概1s鐘能發(fā)2500條左右(也就是說下訂單的話,一秒鐘能順暢下2500張單子,中小型購物系統(tǒng)中應該夠用了)

總結

以上是生活随笔為你收集整理的msmq发送速度的测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。