4

我在 IIS 7.5 中托管了一个带有 HTTPS、TCP 和命名管道绑定的 WCF 应用程序。

目前正在开发新版本的 web 服务,试图提高性能,当我发现一些奇怪的东西时,我正在同一台服务器上使用客户端(VS 控制台客户端)和服务器(IIS 托管)对其进行测试:在进行 100- 的测试时对返回简单字符串的方法的 1000 次调用,内置帐户的性能优于自定义 ApplicatoilPool 身份,域用户,速度大约是 3 倍。

由于服务需要执行的操作,我需要 AppPool 身份成为域管理员。

任何人都可以对此有所了解吗?

4

1 回答 1

1

似乎我找到了“问题”,尽管我不太明白。

正如我提到的,我使用了一个 VS 控制台客户端,即在 Visual Studio 中调试。在使用进程监视器进行了一些分析之后,在有和没有内置 AppPool 用户的情况下运行,我看到 Visual Studio 做了一些时髦的事情。在域管理员下运行 AppPool 时,VS 在不同的用户下产生了一个额外的 .vshost.exe 进程(由于只看到我没有费心寻找的 SID 而看不到),该进程在网络负载下迅速上升.

我构建了控制台项目并在 VS 之外运行了可执行文件,发现 AppPool 用户之间没有明显差异,而且速度比 VS 快很多倍。不知道为什么会这样。

我的结论是“如有疑问,请运行 Process Monitor!” 而且我不应该如此依赖 Visual Studio 调试器来进行性能测试。

于 2012-12-05T11:27:32.697 回答