• 【转】关于loadrunner中设置进程和线程的区别


    loadrunner中,在进行运行设置中有一项选择,是按进程运行Vuser或按线程运行Vuser?下面进行分别来讲:

    1.按进程运行Vuser:Controller将使用驱动程序mdrv运行Vuser。如果按进程方式运行每个Vuser,则对于每个Vuser实例,都将启动一个mdrv进程。如果设置了10个Vuser,则在任务管理器中出现10个mdrv进程。多个mdrv进程肯定会占用大量内存及其他系统资源,这就限制了可以在任一负载生成器上运行的Vuser的数量。

    2.按线程运行Vuser:及设置了10个Vuser,其只会调用一个驱动程序mdrv.而每个Vuser都按线程运行,这些线程Vuser将共享父进程的内存段。这就节省了大量内存空间,从而可以在一个负载生成器上运行更多的Vuser。

       任何选择都是有两面性的。选择线程方式运行Vuser会带来一些安全问题。因为线程的资源是从进程资源中分配出来的,因此同一个进程中的多个线程会有共享的内存空间,这样可能会引起多个线程的同步问题,调度不好,就会出问题,比如A线程要用的资源就必须等待B线程释放,而B也在等待其他资源释放才能继续。这就会出现这样的问题:同一个测试场景,用线程并发就会超时失败或报错,而用进程并发就没错。

        虽然会有区别,但两种方式的运行都会给服务端造成的压力是一样的。

    进程(Process)和线程(Thread)的关系和区别

    Definition定义
    -------------
    Process
    进程是应用程序的一次运行活动;
    从操作系统核 心角度来说,进程是操作系统分配和调度系统内存资源、cpu时间片等资源的基本单位,为正在运行的应用程序提供

    运行环境。

    Thread
    线程是程序内部有并发性的顺序代码流。是cpu调度资源的最小单元。


    Units单位大小
    ------------
    Process
    进程是操作系统分配和调度系统内存资源、cpu时间片 等资源的基本单位;一个进程至少包括一个线程。
    进程是操作系统资源管理的实体。
    Thread
    线程是cpu调度资源的最小单元。
    线 程是进程的实体。


    Resource系统资源分配上
    -------------
    Process
    每个进程都有自己的内存地址空间。
    Thread
    线 程没有自己独立的内存资源,它只有自己的执行堆栈和局部变量。但是在同属一个进程的多个线程中他们可以共享进程的内存

    资源。

    Running执行过程中
    -------------
    执行过程中,进程有内存单元的初始入口点,在存活阶段里拥有独立的地址空间。
    A process has the initial entrance of Memory Units and room of address.

    进程是应用程序的一次运行活动,独立地执行;所以某一个进程崩溃以后,在保护模式下不会影响其他的进程,
    健壮性好。
    A process is activity of application.

    父进程与子进程 的关系待研究深入中……

    每个已创建的进程都可以创建进程,创建进程的进程称为父进程,被创建的新进程为子进程,这样便形成一个进程树。父进程与子进程可并行执行;父进程等 待子进程终止执行。父进程终止后,所有的子进程也都必须要终止。

    Thread
    而线程不能独立地执行,它必须依附在一个运行中的应用程序上。
    但是,同一个进程中的多个线程可以并发地执行,并发性 高,系统在数据交换上花费的资源少,运行效率高。

    主线程与其他线程 的关系待研究深入中……

    每个进程里都会有一个主线程,由它创建其他线程。

    ======================================================

    Common ground 共同点
    --------------
    Process和Thread都有生命周期:
    create 创建,ready就绪,running运行,waitSleepJoin阻塞,suspend挂起,stoped死亡

  • 相关阅读:
    小达同学软件测试第四讲-执行测试
    小达同学软件测试第四讲-执行测试
    Android Studio一直显示Building“project name”Gradle project info问题详解
    Android Studio一直显示Building“project name”Gradle project info问题详解
    安卓入门基础(九)-对应用结构进行分析
    安卓入门基础(九)-对应用结构进行分析
    深入浅出的排序算法-冒泡排序
    深入浅出的排序算法-冒泡排序
    【程序人生】献给还不知道怎么坚持的你
    【程序人生】献给还不知道怎么坚持的你
  • 原文地址:https://www.cnblogs.com/yanghj010/p/4166695.html
Copyright © 2020-2023  润新知