performancetimenusmv

How to find memory and runtime used by a NuSMV model


Given a NuSMV model, how to find its runtime and how much memory it consumed?

So the runtime can be found using this command at system prompt: /usr/bin/time -f "time %e s" NuSMV filename.smv

The above gives the wall-clock time. Is there a better way to obtain runtime statistics from within NuSMV itself?

Also how to find out how much RAM memory the program used during its processing of the file?


Solution

  • One possibility is to use the usage command, which displays both the amount of RAM currently being used, as well as the User and the System time used by the tool since when it was started (thus, usage should be called both before and after each operation which you want to profile).

    An example execution:

    NuSMV > usage
    Runtime Statistics
    ------------------
    Machine name: *****
    User time    0.005 seconds
    System time  0.005 seconds
    
    Average resident text size       =     0K
    Average resident data+stack size =     0K
    Maximum resident size            =  6932K
    
    Virtual text size                =  8139K
    Virtual data size                = 34089K
        data size initialized        =  3424K
        data size uninitialized      =   178K
        data size sbrk               = 30487K
    Virtual memory limit             = -2147483648K (-2147483648K)
    
    Major page faults = 0
    Minor page faults = 2607
    Swaps = 0
    Input blocks = 0
    Output blocks = 0
    Context switch (voluntary) = 9
    Context switch (involuntary) = 0
    
    NuSMV > reset; read_model -i nusmvLab.2018.06.07.smv ; go ; check_property ; usage
    -- specification (L6 != pc U cc = len) IN mm is true
    -- specification  F (min = 2 & max = 9) IN mm is true
    -- specification  G !((((max > arr[0] & max > arr[1]) & max > arr[2]) & max > arr[3]) & max > arr[4]) IN mm is true
    -- invariant max >= min IN mm is true
    
    Runtime Statistics
    ------------------
    Machine name: *****
    User time   47.214 seconds
    System time  0.284 seconds
    
    Average resident text size       =     0K
    Average resident data+stack size =     0K
    Maximum resident size            = 270714K
    
    Virtual text size                =  8139K
    Virtual data size                = 435321K
        data size initialized        =  3424K
        data size uninitialized      =   178K
        data size sbrk               = 431719K
    Virtual memory limit             = -2147483648K (-2147483648K)
    
    Major page faults = 1
    Minor page faults = 189666
    Swaps = 0
    Input blocks = 48
    Output blocks = 0
    Context switch (voluntary) = 12
    Context switch (involuntary) = 145