




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设计高性能的设计高性能的WCFWCF解决方案解决方案Mauro Ottaviani资深软件开发主管微软公司日程日程回报传输层,序列化器,及编码器客户端的选项服务端的选项流传输通常的建议一些比较一些比较与下列.NET技术具有可比性.NET RemotingSystem.EnterpriseServicesSystem.Messaginghttp:/ Remoting vs WCFEnterpriseServices vs WCFASMX vs WCFWSE vs WCF日程日程回报传输层,序列化器,及编码器客户端的选项服务端的选项流传输通常的建议传输层基础传输层基础WCF默认支持多种传输层TCP
2、, HTTP, MSMQ, NamedPipes可以自定义其它传输层每一种传输层各有不同的考虑因素消息传输模式,可接受客户端的多寡,互操作性,开销传输层的比较传输层的比较序列化器基础序列化器基础消息类型 = XML Infoset序列化器是对象图与Infosets之间的桥梁WCF自带了三种序列化器DataContractSerializer (DCS)NetDataContractSerializer (NDCS)XmlSerializer可应互操作性的要求使用相应的序列化器编码器基础编码器基础编码器是Infoset与报文格式之间的桥梁WCF自带了三种编码器(.NET框架3.0)文本,MTOM
3、,二进制.NET框架3.5引入了JSON编码器通常应互操作性的要求来决定使用何种编码器二进制编码速度快,但不具备互操作性MTOM用于大量的二进制数据,同时具备互操作性文本编码则可满足大部分互操作性的要求编码器总结编码器总结二进制编码显著快于文本编码可同时提供一个可互操作的端点和一个不可互操作的端点MTOM与二进制编码相近消息越大,编码器对性能的影响也越大协议本身的开销与实际吞吐量相比可以忽略不计消息越小,编码器对性能的影响也越小大部分时间耗费在协议本身吞吐量(已规格化)吞吐量(已规格化)演示序列化器与编码器序列化器与编码器葛子昂软件设计工程师微软中国研发集团日程日程回报传输层,序列化器,及编码
4、器客户端的选项服务端的选项流传输通常的建议WCF客户端客户端/代理的基础代理的基础Svcutil.exe可以为服务创建一个代理类型该类型实现了IClientChannel实例化该类型需要额外的开销还可以使用ChannelFactory应该使用哪一个?Svcutil.exe创建的类型易于使用,但开销较大ChannelFactory不易使用,但开销较小经常被误用!客户端客户端/代理总结代理总结销毁不用的代理会达到阈值:可能会导致客户端挂起会耗尽资源:如套接字不要在每次调用时都创建一个新的代理如果信道是有状态的,那么可以重复使用ChannelFactory“Increasing Middle-Tie
5、r Client Performance”http:/ = 10MaxConcurrentCalls = 16InstanceContext被设定为PerCall考虑同步的开销绑定指定了闲置超时ReceiveTimeout:可防御客户端不及时关闭连接演示服务的使用服务的使用葛子昂软件设计工程师微软中国研发集团日程日程回报传输层,序列化器,及编码器客户端的选项服务端的选项流传输通常的建议流传输的基础流传输的基础大型数据的传输经验法则:当数据量大于1M时考虑使用流只能用于HTTP,TCP和NamedPipe传输层既可传入服务,也可从服务中传出,或双向设定绑定的TransferMode.Stream
6、ed在契约中使用System.IO.Stream设定MaxReceivedMessageSize默认设定为64k流传输的调控流传输的调控Windows和WCF会对内容进行缓存即便是流传输的情况下也是如此WCF提供了用Nagle算法来控制缓存的支持ConnectionBufferSize指定本地缓存的大小MaxOutputDelay在本地缓存数据的最长时间AllowOutputBatching在WCF内部启用批处理演示流传输流传输葛子昂软件设计工程师微软中国研发集团常见的陷阱常见的陷阱不销毁无用的代理每次调用都创建一个新的代理在没有必要的时候启用安全性(Web)NetTcp/NetPipe/WS
7、Http默认情况下开启使用ServerThrottle的默认设定MaxConcurrentSessions = 10MaxConcurrentCalls = 16契约中使用了流传输,而绑定中却仍然使用缓存必要时采用流传输:内存的使用,较大的负荷负荷较小时采用缓存更快可用的工具可用的工具SvcConfigEditor:可方便地显示所有设定SvcTraceViewer:对追踪数据进行诊断性能计数器Visual Studio Team Suite中的性能工具Netmon:可分析线上的数据及其行为3.1版已开放下载http:/ (Xperf)http:/ & CRLs)对主要的用户场景从头至尾进行测量
8、若只对场景的某一部分进行测量,则一定要谨慎性能调整检查表(性能调整检查表(1)传输层NetPipe, NetTcp, BasicHttp, WSHttp代理重用ServiceChannel,重用ChannelFactory.安全性传输层,WS-* +MessageCredentials,完全WS-*编码器文本编码,MTOM,二进制编码,JSON压缩编码,非WCF自带(GZipStream)性能调整检查表(性能调整检查表(2)运行方式自主运行,在IIS内运行在Vista/2008 Server下,IIS7内运行时可支持NetTcp/NetPipe限额/阈值在提高限额/阈值的同时,使其保持尽可能地
9、小实例化/并发Singleton/Multiple事务OleTx, WS-AT队列使用批处理参考资源参考资源A Performance Comparison of Windows Communication Foundation (WCF) with Existing Distributed Communication Technologieshttp:/ Middle-Tier Client Performancehttp:/ 3.0http:/.NET StockTrader Sample Applicationhttp:/ (Xperf)http:/ 2007 Microsoft Cor
10、poration. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司万圣节员工活动方案
- 公司三八节聚餐活动方案
- 公司上市搞活动方案
- 公司不组织集体活动方案
- 公司两周年庆典策划方案
- 公司中秋员工活动方案
- 公司中秋节微信策划方案
- 公司举办ktv活动方案
- 公司举办年猪宴活动方案
- 公司举办读书会策划方案
- 广工计算机专业离散数学考试题,广东工业大学-离散数学试卷和答案A
- 现代艺术野兽派-中外美术史-课件
- 浙江嘉兴市小学英语四年级下学期期末测试卷测试题(含答案)
- 无犯罪记录无吸毒史证明模板
- 双曲线齿轮几何设计
- 大型养路机械综合讲义
- 国际商务毕业论文范文
- 高分子材料完整版课件
- GB∕T 37456-2019 海洋平台电驱动齿轮齿条升降装置
- 空间解析几何教案
- 2022年甘肃省特岗教师理科综合真题
评论
0/150
提交评论