Performance 优化WCF NetNamedPipeBinding性能

Performance 优化WCF NetNamedPipeBinding性能,performance,wcf,wcf-binding,netnamedpipebinding,Performance,Wcf,Wcf Binding,Netnamedpipebinding,我有一个名为管道服务的WCF,它接收字节数组并将其写入SQLite数据库。 当我将SQLite插入逻辑移到WCF服务中时,写性能几乎降低了一半。 我在网上浏览了各种推荐信,但似乎没有任何帮助。 我当前的配置如下所示: pipeBinding.MaxBufferPoolSize = 5000000; pipeBinding.MaxBufferSize = 5000000; pipeBinding.MaxReceivedMessageSize = 5000000; pipeBinding.R

我有一个名为管道服务的WCF,它接收字节数组并将其写入SQLite数据库。 当我将SQLite插入逻辑移到WCF服务中时,写性能几乎降低了一半。 我在网上浏览了各种推荐信,但似乎没有任何帮助。 我当前的配置如下所示:

 pipeBinding.MaxBufferPoolSize = 5000000;
 pipeBinding.MaxBufferSize = 5000000;
 pipeBinding.MaxReceivedMessageSize = 5000000;
 pipeBinding.ReaderQuotas.MaxArrayLength = 5000000;
 pipeBinding.Security.Transport.ProtectionLevel = ProtectionLevel.None;             

更多的调整建议将非常受欢迎。

使用protobuf有助于提高速度,但最消耗的操作是SQLite表上的求和操作,因此我已更改了数据库的结构。

是您的服务
PerSession
<代码>PerCall?您是否使用同一客户端代理重复调用该服务?您是否在服务方法开始时启动DB连接?如果是这样,请考虑让您的服务 Survest并将DB连接init移动到您的服务构造器中,在那里它可以在给定的PROXY调用中使用,它有一个非默认构造函数,因此它不能被放弃。我已配置Behavior.InstanceContextMode=InstanceContextMode.Single;它确实有助于创建单个db实例。我也在考虑写我自己的连载。也许跳过base64阶段会有所帮助