组件应该合理的设计并且对资源的泄漏进行全面的检测。甚至极为小的泄漏也会对可扩展性和可靠性产生影响,而且必须被声明。这在理解为什么以windows NT为基础的系统需要频繁的重新启动可能是非常重要的因素。确定在一个window NT为基础的系统上是否存在这种情况的最简单办法就是运行the Windows NT (或者Windows 2000) Performance Monitor并且记录所有对象到一个文件中。当有问题出现时,将被记录的性能数据作为一个泄漏的标记。
因为大多数的泄漏通过在诸如进程数、句柄、虚拟内存等等资源消费的方面表现出的渐进增长已经让人们所了解,所以可以高效率的运转。当你看到性能数据时, SQL Server Books Online 的文章中建议检测下面计数器:
对于计算机运行每一个过程的工作设置显然既没有资源管理问题,又没有必须的预防、鉴定或者排除它们的诊断技术,这对于n层应用软件来说是非常独特的。可是排除在一个n层环境中引起这些问题的错误能够确保具有重要意义的性能优势。三种最通常的资源管理问题是内存泄漏、没有被释放的对象句柄和因为粗心运用了诸如variant_t 和 CcomPtr的帮助性类的COM对象引用数增高。
当遇到资源管理问题的时候,你应该总是记住windows DNA 应用软件的潜在复杂性可能创造出许多种不确定。例如,甚至在Java 和 Visual Basic高级语言中,当你利用它们终止时,明确地释放对象是很重要的。这样做通常是将设置对象为NULL 或者 NOTHING一样简单。另一方面,在一些情况下大的数据结构将存在,这就需要开发一个办法去维护这个结构而不是删除它然后每次需要时再重建那个结构。关于这方面的评价是变化。一些开发者感觉维护一个结构来换取性能提高,然而其他人认为它有潜在地对可扩展性的威胁。这是在许多体系结构的问题之一,在这些问题中你必须折衷研究问题,同时为你的特殊的工程做出最优选择。
上一页 | 下一页 |
在中间层的错误 | 拙劣地调整数据库 |