我目前正在编写一个应用程序,它将为我们的网络服务器自动化几个管理项目。我的问题很简单,但我找不到任何文档;当调用我们的ServerManager
通过using Microsoft.Web.Administration
时,如果服务器对象连接定期打开和关闭(处置),它会不会有任何性能障碍?
我知道在 SQL 数据库中,频繁的连接调用在很多情况下会降低性能;所以我不想遇到类似的问题。
我试图避免创建一个Instance
将Persisted
传出任务排队然后执行的方式。
如果有人可以让我知道,并指出任何关于它的文档,那就太好了。但就像我说的,我现在找不到任何东西。
一个小规模的例子:
public void AddSite()
{
ServerManager defaultManager = new ServerManager();
// Perform Task
defaultManager.CommitChanges();
defaultManager.Dispose();
}
public void RemoveSite()
{
ServerManager defaultManager = new ServerManager();
// Perform Task
defaultManager.CommitChanges();
defaultManager.Dispose();
}
通过本质上基于每种方法构建对象;那么关闭它会影响性能吗?
更新:
该示例是一个非常基本甚至原始的示例。将进行一些重构以遵循良好实践,例如实施IDisposable
. 然而,主要的困境是我无法准确地描述与 SQL 相同的变化。
在过度打开和关闭的 SQL 中,您会看到所有服务逐渐蚕食性能,尤其是随着数据库复杂性的增长。
那是我对 IIS 的目标,目前我无法获得准确的表示。性能确实在改变;我知道它加载的大多数服务也在序列化和反序列化解释配置的 XML 文件。
知道 IIS 有多复杂,我将它自动化,但尝试做最简单的路径。我想知道这种简单化的方法是否需要更复杂的方法或重构。由于它确实创建的那些服务和流程确实会消耗资源。
我试图准确地描述那些可能的障碍,但我找不到任何文档甚至是Performance Gains for IIS 的详细信息。
另外,每次我进行测试时,结果都会出现零星的、不一致的,并且最终不可靠。