性能测试从零开始——LoadRunner入门(四)[1]

发表于:2010-02-25来源:作者:点击数: 标签:loadrunnerLoadRunnerLoadrunnerloadRunner性能测试
性能测试从零开始—— LoadRunner 入门(四)[1] 性能测试工具 1.1.5 软件人员眼里的软件性能 用户恨不能让软件有无限的性能,但作为软件技术人员,我们需清楚地认识到,那种理想化的要求是不可能的。在软件性能方案中,没有什么万能钥匙,软件性能方案充满了

  性能测试从零开始——LoadRunner入门(四)[1]   性能测试工具

  1.1.5 软件人员眼里的软件性能

  用户恨不能让软件有无限的性能,但作为软件技术人员,我们需清楚地认识到,那种理想化的要求是不可能的。在软件性能方案中,没有什么万能钥匙,软件性能方案充满了辩证的各种矛盾。每种方案和方法几乎都有利有弊。只有把握设计系统的具体环境,明确设计目标,具体问题具体分析,合理平衡各种矛盾,牢牢抓住主要矛盾,才能产生出优化的软件系统性能方案。

  在上面的分析中,我们得知软件性能是软件运行空间和时间综合考虑的解决方案。那么其实满足用户的性能需求,只有以下几种方案:

  1.消除软件对空间和时间不必要的浪费

  一个最明显的例子就是内存泄漏问题,它被开发人员看做是大忌。

  严格地说,内存泄漏应该属于软件程序设计的一种缺陷,该缺陷直接导致了程序在运行过程中无法释放不再需要的内存空间,从而造成内存资源浪费,严重的会造成无可用内存,导致系统崩溃。具体来说,当用户程序在运行过程中需要动态获得内存时,操作系统总是从堆(heap)上分配相应的空间给应用,分配的结果是将该堆内存的起始地址通过指针返回给应用。正常情况下,使用完这块内存后,应通过系统调用主动通知操作系统回收这些堆内存以便重用。但是,如果由于设计缺陷导致在某些情况下程序没有主动地通知到操作系统,而后应用又失去了对这块内存的引用时,则该堆内存块将成为既不受程序控制,又不能被系统回收重用的“孤儿”内存,这便是我们所指的内存泄漏。

  案例1

  void foo( )

  {

  char *str;

  str = (char*)malloc(32*sizeof(char));

  strcpy(str, "hello world");

  return;

  /* str所指向的32个字节的内存没有被释放,当foo()返回时造成内存泄漏 */

  }

  解决:C语言中malloc和free函数要配对使用。

  案例2

  void foo()

原文转自:http://www.ltesting.net