Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14523491
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:03:41

下载本文示例代码
概要 服务器性能是桌面应用程序开发人员需要注意的一个问题。组件对象模型和小组件的成功有可能带来一个意料之外的情况,那就是象ASP那样的应用程序服务器--Microsoft IIS的一个扩展--会以意识中的服务器环境结束以前未写过的主机代码。桌面和服务器环境的一个重要不同就是服务器环境会对性能造成巨大的、意想不到的影响。 服务器 对 桌面应用程序   影响桌面应用程序性能的因素是众所周知的。指令路径越长就意味着较慢的代码,这是对于性能的最大影响。大量使用资源意味着这个庞大的应用程序在系统中为其它应用程序留下很少的资源。启动时间过长会激怒用户。大量的工作设置会造成较高的页面出错率,从而令机器停顿、速度和反应迟缓。服务器应用程序也受到这些因素的影响,还有其它因素如下:   服务器应用程序通常要同时应付数十个以至于上百个客户。如果一个桌面应用程序能够以低于十分之一秒的速度对用户作出反应的话,就可以认为是较快的。如果一个操作占用了100毫秒,那么应用程序每十秒只能执行10个操作。大部分服务器应用程序的性能都远远高于10个请求/秒。网络的反应时间长(反应时间=信息传输时间)会延长程序的反应时间,留给服务器处理请求的时间就更少了。   服务器应用程序通常要处理较大的数据集。效率较低的算法,尤其是那些使用二次(或更糟)运行时间的,与数百万的条目处理是不相称的。   服务器机器比桌面机器更强大。服务器机器内存更多、硬盘更大、CPU速度更快,通常有多个处理器。但是对它们还有更高的要求;桌面机器的大多数时间都在一些零散的处理中间浪费了,而服务器机器却是在持续的负载下工作。服务器机器比较昂贵,它们理应性能更好。   服务器应用程序应该在每个月都测量其正常运行时间。应用程序的性能不应随着时间由于资源泄漏和无用数据(应该定期清除的数据结构和统计数字)的生成而降低。   大部分服务器应用程序要求多流结构。一个单流的服务器一次只能处理一个请求,将其大量的时间都用于堵塞在I/O上,这样是不会得到满意的性能的。多流结构可以同时处理多个请求,利用一些原本空闲的处理器周期。确实,要充分利用多处理器系统,服务器应用程序必须是多流的。遗憾的是多流应用程序难以编写、调试,也难以得到较好的性能,尤其是在多处理器系统中。但是一旦你把它开发调试好,其性能就会大大地超过相应的单流应用程序,所以开发多流应用程序是值得的。   单流应用程序相对来说比较容易理解:在程序中一个时间只发生一件事。在多流应用程序中,同时发生的动作会导致复杂的交互作用,从而产生难以预料的结果。另外,不管这些交互作用是不是臭虫,都很难再生。桌面应用程序很少有一个以上的流,即使有,这些流也都是用于离散背景的任务,例如打印等。 共2页。 1 2 8 : 概要 服务器性能是桌面应用程序开发人员需要注意的一个问题。组件对象模型和小组件的成功有可能带来一个意料之外的情况,那就是象ASP那样的应用程序服务器--Microsoft IIS的一个扩展--会以意识中的服务器环境结束以前未写过的主机代码。桌面和服务器环境的一个重要不同就是服务器环境会对性能造成巨大的、意想不到的影响。 服务器 对 桌面应用程序   影响桌面应用程序性能的因素是众所周知的。指令路径越长就意味着较慢的代码,这是对于性能的最大影响。大量使用资源意味着这个庞大的应用程序在系统中为其它应用程序留下很少的资源。启动时间过长会激怒用户。大量的工作设置会造成较高的页面出错率,从而令机器停顿、速度和反应迟缓。服务器应用程序也受到这些因素的影响,还有其它因素如下:   服务器应用程序通常要同时应付数十个以至于上百个客户。如果一个桌面应用程序能够以低于十分之一秒的速度对用户作出反应的话,就可以认为是较快的。如果一个操作占用了100毫秒,那么应用程序每十秒只能执行10个操作。大部分服务器应用程序的性能都远远高于10个请求/秒。网络的反应时间长(反应时间=信息传输时间)会延长程序的反应时间,留给服务器处理请求的时间就更少了。   服务器应用程序通常要处理较大的数据集。效率较低的算法,尤其是那些使用二次(或更糟)运行时间的,与数百万的条目处理是不相称的。   服务器机器比桌面机器更强大。服务器机器内存更多、硬盘更大、CPU速度更快,通常有多个处理器。但是对它们还有更高的要求;桌面机器的大多数时间都在一些零散的处理中间浪费了,而服务器机器却是在持续的负载下工作。服务器机器比较昂贵,它们理应性能更好。   服务器应用程序应该在每个月都测量其正常运行时间。应用程序的性能不应随着时间由于资源泄漏和无用数据(应该定期清除的数据结构和统计数字)的生成而降低。   大部分服务器应用程序要求多流结构。一个单流的服务器一次只能处理一个请求,将其大量的时间都用于堵塞在I/O上,这样是不会得到满意的性能的。多流结构可以同时处理多个请求,利用一些原本空闲的处理器周期。确实,要充分利用多处理器系统,服务器应用程序必须是多流的。遗憾的是多流应用程序难以编写、调试,也难以得到较好的性能,尤其是在多处理器系统中。但是一旦你把它开发调试好,其性能就会大大地超过相应的单流应用程序,所以开发多流应用程序是值得的。   单流应用程序相对来说比较容易理解:在程序中一个时间只发生一件事。在多流应用程序中,同时发生的动作会导致复杂的交互作用,从而产生难以预料的结果。另外,不管这些交互作用是不是臭虫,都很难再生。桌面应用程序很少有一个以上的流,即使有,这些流也都是用于离散背景的任务,例如打印等。 共2页。 1 2 8 : 下载本文示例代码


影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手影响服务器性能和伸缩性的杀手
阅读(137) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~