我正在对使用EF(System.Data.Entities)从SQLDB读取的WCF服务进行一些分析。当我启动多个访问服务的并行客户端时,CPU都达到100%,性能通常下降,一切都陷入困境。在使用并发分析器对此进行分析时,我发现85%的时间花在同步上,只有大约4%用于实际代码执行。深入查看堆栈跟踪,大部分同步似乎来自System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync中对WaitForSingleObject的调用。堆栈显示调用转到native方法包装器,然后在kernel32.dll!_WaitForSingl
我正在对使用EF(System.Data.Entities)从SQLDB读取的WCF服务进行一些分析。当我启动多个访问服务的并行客户端时,CPU都达到100%,性能通常下降,一切都陷入困境。在使用并发分析器对此进行分析时,我发现85%的时间花在同步上,只有大约4%用于实际代码执行。深入查看堆栈跟踪,大部分同步似乎来自System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync中对WaitForSingleObject的调用。堆栈显示调用转到native方法包装器,然后在kernel32.dll!_WaitForSingl