Visual C++优化对大型数据集合的并发访问

http://tech.ddvip.com   2007年03月30日    社区交流

本文详细介绍Visual C++优化对大型数据集合的并发访问

  本文示例源代码或素材下载

  摘要 应用程序性能不仅仅与速度有关。在 Web 服务器环境中,卓越的性能还意味着确保可以并发地为最大数量的用户服务。这可以通过高效地使用多处理器计算机和线程管理来达到。本文介绍了可以解决许多并发性问题的技术。一种方法是使用线程管理,在线程基础上控制对数据库的访问 — 这可以保护数据的完整性。在本文中,生成并提供了可重用的线程类。然后,对这些类进行了测试,并在实际环境中分析了它们的性能。

  服务器应用程序的成功与否迟早将归结为性能。但是,服务器应用程序中的性能不完全等同于纯粹的速度。您还必须考虑并发性 — 即您能够同时为多少个客户端提供服务。实际上,对于服务器而言,并发性通常要比纯速度更为重要,尤其是对带有许多 CPU 的高端硬件而言。具有低并发性的服务器应用程序只是无法利用多个 CPU(无论该应用程序有多么快)。

  我不知道是否有简单明了的用于优化并发性的处方,但多年以来,我已经形成了大量能够提供巨大帮助的窍门。其中一个窍门可以很好地同步对大型集合中的对象的访问,而不会牺牲并发性。本文将演示我的技巧。首先,我将说明一个小型多线程示例程序,该程序演示了并发访问大型集合中的对象的需要。然后,我将开发一个能够解决该问题的可重用类,并且将比较得到的性能数值。作为一项附加的好处,该示例程序将包含一组便于使用的、用于创建和同步线程的类(当然是可重用的)。

  示例代码可在 Windows 98 Second Edition、带有 Service Pack 6a 的 Windows NT 或带有 Service Pack 1 的 Windows 2000 上运行(它或许可以在其他版本上运行,但以上版本是我测试过的全部版本。)而且,该代码要求有带有 Service Pack 4 的 Visual C++ 6.0。

作者:Ian Emmons    责编:豆豆技术应用

正在加载评论...