I have a performance question.
There are multiple methods of getting and setting variables. I would like to know what is adviced, or what gives the best performance between them.
Method 1: single call
var example1 = global.get('storedvariable1',"file");
global.set per variable.
Method 2: multi call
But... method 2 can also be in the form like this:
MQTT.block_active MQTT.allow_rtc_onoff MQTT.allow_scheduler MQTT.allow_solar MQTT.block_mode MQTT.message_limit MQTT.counter MQTT.messages_yesterday MQTT.messages_today MQTT.block_mode_previous
Calling variable MQTT
var MQTT = global.get('MQTT', "file");
In this example, it could be in reality that I only require 2 variables from MQTT in the function after reading.
The questions are:
Q1: what method of getting variables would be best for performance.
Q2: Using method 2 in the form I wrote in the example, would loading the extra variables result in a performance thing?
I use 2 storage methods. for live values only use memoryOnly, and for storing graphs or settings store in 'file'.
The settings have a flush timer of 300 seconds.
Q3: when global.getting a variable from "file", does that mean there is a read action done?
Q4: When setting a global variable to 'file' location, does the variable store DIRECTLY to file/disk, or collect it during 300 seconds, and THEN store it to file?
For the amount of writing actions.. I can see there is a significant performance topic here in case the actual writing is done instantly instead of once per 300 seconds.
The things I have read still leave me with this question. I THINK the flush timer is collecting all changed variables and writing it once 300 seconds. But I'd like this confirmed
Many thanks for all the support here.