msmq发送速度的测试
在一些并发量比较高的"中小型"应用中,如果短期内有大量的数据插入,利用msmq中转是一个不错的选择(petshop就是这么干的),想知道msmq一秒钟内到底能发多少条记录吗?
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;//设置消息可恢复(即服务器重启后,消息还在,但是启用这个选项将会使发送时间加倍,因为"可恢复"的机制就是先在服务器硬盘生成文本文件,多了一次写文件的IO操作)
28 queue.Send(msg);
29 }
30
31 stopWatch.Stop();
32
33 Console.WriteLine("{0}条发送完成,共耗时:{1}秒,平均每秒发送{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钟能发2500条左右(也就是说下订单的话,一秒钟能顺畅下2500张单子,中小型购物系统中应该够用了)
msmq发送速度的测试相关推荐
- STM32F407 STM32F407 LWIP速度优化测试速度可以达到1万kb每秒 相当于80兆的网络速度
STM32F407 LWIP速度优化测试 使用的板子是正点原子的探索者 STM32F407ZGT6. STM32F407 LWIP速度优化,测试速度可以达到1万kb每秒, 相当于80兆的网络速度. 差 ...
- Rails测试《十一》添加邮件发送程序及测试邮件发送程序
讲到测试邮件发送程序,我们首先要让系统可以发送邮件.我们先来给系统添加发送邮件的功能. Action Mailer in Rails 3是一个不错的视频教程,大家可以参考. 还有就是http://gu ...
- StatsD 五种类型数据发送形式拟测试
statsd 五种类型数据发送形式拟测试 StatsD Metric Types Counting gorets:1|c This is a simple counter. Add 1 to the ...
- 电脑上传网速怎么测试软件,宽带上传速度怎么测试 教你如何看电脑宽带上传速度...
网速一般分为下载速度和上传速度,一般我们测算网速只是测试下载速度,只要电脑从网上下载速度快,用户通常比较满意.但你知道吗?上传速度也是值得关注的,尤其是在云网络时代,很多朋友都要传文件到网盘或者视频网 ...
- 名图怎么弄云服务器_云服务器购买了宽带的速度怎么测试?
西昆云详细说一下企业租用云服务器搭建网站,很多新手站长会把带宽当成宽带来测试,比如在自己的云服务器上下载东西测试速度,一旦下载的东西慢了就觉得有问题,其实这是不准确的,那么如何查看云服务器的带宽速度呢 ...
- ab 发送post请求测试API性能
apache benchmark 工具 测试API 性能发送 Post 请求(Linux环境验证通过) 在apache bin 目录,在linux上执行命令: ./ab -n 1 -v 4 -p 'u ...
- 使用SG_IO发送SCSI 指令测试底层驱动的scatter-gather 功能
http://gmd20.blog.163.com/blog/static/16843923201002274341552/ Linux中的sg驱动 ("The Linux SCSI Gen ...
- 使用spring实现邮件的发送(含测试,源码,注释)
此篇主要讲的是使用spring配置实现邮件发送,与之前的底层实现简便了不少,只需要几个配置就可以了,那么请往下看: 先写个接口 /** * @Title: IMailserdService.java ...
- msmq 发送到远程专用队列不存在_不知道消息中间件是什么?RabbitMQ从头到尾详解介绍...
一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很 ...
最新文章
- label之间展示间距_cob小间距led显示屏分类
- 7-3 作业调度算法--高响应比优先 (40 分)(思路+详解+vector容器做法)Come Baby!!!!!
- 虚拟化服务器类型,虚拟化服务器类型
- 用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数
- js如何上传大文件到服务器,js将文件上传到远程服务器
- java学习——equals()和==的比较
- python 多进程 调用模块内函数_python--多进程的用法详解实例
- SAP License:结算金额大于可支配金额
- 鸿蒙 OS 背后神秘人物曝光!
- php 规则路由器,ThinkPHP6路由踩坑之变量规则
- 如何与亦敌亦友的 null 说拜拜?大神原来是这么做的!
- java rxtx 64_win7 64为下使用rxtx串口通信
- 使用PS将图片自然从清晰到模糊过渡
- CAD绘制带角度的矩形阵列
- Python获取当前时间
- mac软件全屏时候最顶上任务栏保留_一键整理 Mac 顶部菜单栏,这款免费工具 App 还你清爽...
- 主板开启网络唤醒_网络唤醒bios设置【应用方式】
- 「Shell」- 使用环境变量,替换在文件中的变量(envsubst) @20210401
- InnoDB和Myisam引擎的优缺点
- [弱校联萌2016]2016弱校联盟十一专场10.3
热门文章
- Eclipse反编译插件JadClipse安装及使用
- linux挂载查看、添加与取消
- 请写一个函数,实现以下功能: 字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”...
- .Net学习笔记----2015-06-28(值类型和引用类型)
- codeforces 297 E. Anya and Cubes
- android Listview2 笔记
- 年轻人还有机会征服这个世界吗?
- CanFestival应用
- “要源码上门自取”,结果人真上门了!国内企业再惹争议
- 火遍全网的Hutool,如何使用Builder模式构建线程池