"/home/richard/Documents/School/05 Diplomka/interpreter/cmake-build-debug/interpreter" --test-server 50
>>>>>> Testing 1 worker for 50 seconds:
======== Code analysis ========
function simulateWrite:
  - recursive: 0
  - readVars:
  - writeVars:
  - readExpressions:
  - writeExpressions:
function simulateRead:
  - recursive: 0
  - readVars:
  - writeVars:
  - readExpressions:
  - writeExpressions:
function isBitSet:
  - recursive: 0
  - readVars:
  - writeVars:
  - readExpressions:
  - writeExpressions:
function main:
  - recursive: 0
  - readVars: db1 db2 db3 db4
  - writeVars: db1.data db1.reads db1.writes db2.data db2.reads db2.writes db3.data db3.reads db3.writes db4.data db4.reads db4.writes
  - readExpressions:
    - db1:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 0))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 0))
    - db2:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 1))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 1))
    - db3:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 2))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 2))
    - db4:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 3))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 3))
  - writeExpressions:
    - db1.data:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 0))
    - db1.reads:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 0))
    - db1.writes:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 0))
    - db2.data:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 1))
    - db2.reads:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 1))
    - db2.writes:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 1))
    - db3.data:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 2))
    - db3.reads:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 2))
    - db3.writes:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 2))
    - db4.data:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 3))
    - db4.reads:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 3))
    - db4.writes:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 3))
===============================

======== Global state =========
{
  db1: {
    data: ""
    reads: 813
    writes: 78
  }
  db2: {
    data: ""
    reads: 776
    writes: 80
  }
  db3: {
    data: ""
    reads: 765
    writes: 91
  }
  db4: {
    data: ""
    reads: 771
    writes: 97
  }
}
===============================

===== Messages statistics =====
readOneRandom:
  - total seconds: 50
  - total generated: 4659
  - total done: 1139
  - avg. per second: 22.78
  - min. per second: 5
  - max. per second: 36
readTwoRandom:
  - total seconds: 50
  - total generated: 2453
  - total done: 593
  - avg. per second: 11.86
  - min. per second: 4
  - max. per second: 20
readAll:
  - total seconds: 50
  - total generated: 992
  - total done: 200
  - avg. per second: 4
  - min. per second: 1
  - max. per second: 7
writeOneRandom:
  - total seconds: 50
  - total generated: 1645
  - total done: 346
  - avg. per second: 6.92
  - min. per second: 1
  - max. per second: 10
-------------------------------
  - absolute total done: 2278
  - absolute avg. per second: 45.56
===============================

>>>>>> Testing 2 workers for 50 seconds:
======== Code analysis ========
function simulateWrite:
  - recursive: 0
  - readVars:
  - writeVars:
  - readExpressions:
  - writeExpressions:
function simulateRead:
  - recursive: 0
  - readVars:
  - writeVars:
  - readExpressions:
  - writeExpressions:
function isBitSet:
  - recursive: 0
  - readVars:
  - writeVars:
  - readExpressions:
  - writeExpressions:
function main:
  - recursive: 0
  - readVars: db1 db2 db3 db4
  - writeVars: db1.data db1.reads db1.writes db2.data db2.reads db2.writes db3.data db3.reads db3.writes db4.data db4.reads db4.writes
  - readExpressions:
    - db1:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 0))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 0))
    - db2:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 1))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 1))
    - db3:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 2))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 2))
    - db4:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 3))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 3))
  - writeExpressions:
    - db1.data:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 0))
      - (<_and> true (<_eq> local.msg.type "init"))
    - db1.reads:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 0))
      - (<_and> true (<_eq> local.msg.type "init"))
    - db1.writes:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 0))
      - (<_and> true (<_eq> local.msg.type "init"))
    - db2.data:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 1))
    - db2.reads:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 1))
    - db2.writes:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 1))
    - db3.data:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 2))
    - db3.reads:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 2))
    - db3.writes:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 2))
    - db4.data:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 3))
    - db4.reads:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 3))
    - db4.writes:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 3))
===============================

======== Global state =========
{
  db1: {
    data: ""
    reads: 980
    writes: 218
  }
  db2: {
    data: ""
    reads: 1060
    writes: 174
  }
  db3: {
    data: ""
    reads: 1076
    writes: 185
  }
  db4: {
    data: ""
    reads: 1070
    writes: 186
  }
}
===============================

===== Messages statistics =====
readOneRandom:
  - total seconds: 50
  - total generated: 4668
  - total done: 2438
  - avg. per second: 48.76
  - min. per second: 30
  - max. per second: 63
readTwoRandom:
  - total seconds: 50
  - total generated: 2457
  - total done: 814
  - avg. per second: 16.28
  - min. per second: 7
  - max. per second: 22
readAll:
  - total seconds: 50
  - total generated: 994
  - total done: 30
  - avg. per second: 0.6
  - min. per second: 0
  - max. per second: 3
writeOneRandom:
  - total seconds: 50
  - total generated: 1629
  - total done: 763
  - avg. per second: 15.26
  - min. per second: 10
  - max. per second: 20
-------------------------------
  - absolute total done: 4045
  - absolute avg. per second: 80.9
===============================

>>>>>> Testing 4 workers for 50 seconds:
======== Code analysis ========
function simulateWrite:
  - recursive: 0
  - readVars:
  - writeVars:
  - readExpressions:
  - writeExpressions:
function simulateRead:
  - recursive: 0
  - readVars:
  - writeVars:
  - readExpressions:
  - writeExpressions:
function isBitSet:
  - recursive: 0
  - readVars:
  - writeVars:
  - readExpressions:
  - writeExpressions:
function main:
  - recursive: 0
  - readVars: db1 db2 db3 db4
  - writeVars: db1.data db1.reads db1.writes db2.data db2.reads db2.writes db3.data db3.reads db3.writes db4.data db4.reads db4.writes
  - readExpressions:
    - db1:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 0))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 0))
    - db2:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 1))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 1))
    - db3:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 2))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 2))
    - db4:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 3))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 3))
  - writeExpressions:
    - db1.data:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 0))
      - (<_and> true (<_eq> local.msg.type "init"))
    - db1.reads:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 0))
      - (<_and> true (<_eq> local.msg.type "init"))
    - db1.writes:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 0))
      - (<_and> true (<_eq> local.msg.type "init"))
    - db2.data:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 1))
    - db2.reads:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 1))
    - db2.writes:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 1))
    - db3.data:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 2))
      - (<_and> true (<_eq> local.msg.type "init"))
    - db3.reads:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 2))
    - db3.writes:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 2))
      - (<_and> true (<_eq> local.msg.type "init"))
    - db4.data:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 3))
    - db4.reads:
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.reads 3))
      - (<_and> true (<_eq> local.msg.type "init"))
    - db4.writes:
      - (<_and> true (<_eq> local.msg.type "init"))
      - (<_and> (<_and> true (<_eq> local.msg.type "work")) (<isBitSet> local.msg.writes 3))
===============================

======== Global state =========
{
  db1: {
    data: ""
    reads: 1176
    writes: 240
  }
  db2: {
    data: ""
    reads: 1120
    writes: 270
  }
  db3: {
    data: ""
    reads: 1065
    writes: 288
  }
  db4: {
    data: ""
    reads: 1100
    writes: 259
  }
}
===============================

===== Messages statistics =====
readOneRandom:
  - total seconds: 50
  - total generated: 4627
  - total done: 2869
  - avg. per second: 57.38
  - min. per second: 33
  - max. per second: 68
readTwoRandom:
  - total seconds: 50
  - total generated: 2437
  - total done: 718
  - avg. per second: 14.36
  - min. per second: 9
  - max. per second: 20
readAll:
  - total seconds: 50
  - total generated: 990
  - total done: 39
  - avg. per second: 0.78
  - min. per second: 0
  - max. per second: 3
writeOneRandom:
  - total seconds: 50
  - total generated: 1632
  - total done: 1057
  - avg. per second: 21.14
  - min. per second: 12
  - max. per second: 28
-------------------------------
  - absolute total done: 4683
  - absolute avg. per second: 93.66
===============================


Process finished with exit code 0
