Rule execution lags, possibly Java GC

A better one:

2020-06-26 15:57:43.163 [vent.ItemStateChangedEvent] - string_haspplate01_statejson changed from {"event":"p[8].b[4].val", "value":"0"} to {"event":"p[8].b[4]", "value":"ON"}
2020-06-26 15:57:43.165 [vent.ItemStateChangedEvent] - string_haspplate01_statejsonvalue changed from 0 to ON
2020-06-26 15:58:30.435 [DEBUG] [.eclipse.smarthome.model.script.HASP] - debug else path

and after this

2020-06-26 15:58:56.790 [vent.ItemStateChangedEvent] - string_haspplate01_statejson changed from {"event":"p[8].b[4].val", "value":"0"} to {"event":"p[8].b[4]", "value":"ON"}

2020-06-26 15:58:56.791 [vent.ItemStateChangedEvent] - string_haspplate01_statejsonvalue changed from 0 to ON
2020-06-26 15:58:56.796 [DEBUG] [.eclipse.smarthome.model.script.HASP] - debug else path

The rule

rule "handle HASP plate01"
when
    Item string_haspplate01_statejsonvalue received update /*or 
    Item switch_haspplate01_motion changed*/
then
    try{
        logInfo ("Handle HASP", "triggered" + string_haspplate01_statejsonvalue.state.toString)
        //parse out data from JSON string (page, button, value)
        logDebug("HASP", "debug start")
            //var String eventbutton = string_haspplate01_statejso"nevent.state.toString.split("\\[").get(2).split("\\]").get(0)
        
        if (string_haspplate01_statejsonvalue.state == '0')
        {
            //Do nothing (button release event)
            logInfo ("HASP", "Ignoring OFF event")
        }
        else
        {   
            logDebug("HASP", "debug else path")
            logInfo ("HASP", "ON event ")
            var String local_statejsonevent = string_haspplate01_statejsonevent.state.toString
            val String eventpage = local_statejsonevent.split("\\[").get(1).split("\\]").get(0)
            val String eventbutton = local_statejsonevent.split("\\[").get(2).split("\\]").get(0)
            //Handle Page/button/dimmer value event
            if(switch_haspplate01_light.state == OFF)
            {
                switch_haspplate01_light.sendCommand(ON)
            }
            if ((eventbutton == '1' || eventbutton == '2' || eventbutton == '3') && eventpage != '0')
            {
                switch(eventbutton)
                    {
                        case '1':
                        {
                            number_haspplate01_page.sendCommand(globalvar_number_plate01_pagebutton1page)
                        }
                        case '2':
                        {
                            number_haspplate01_page.sendCommand(globalvar_number_plate01_pagebutton2page)
                        }
                        case '3':
                        {
                            number_haspplate01_page.sendCommand(globalvar_number_plate01_pagebutton3page)
                        }
                    }               
                    switch_haspplate01_light.sendCommand(ON) //refresh backlight timer following button press
            }
            else
            {
                switch(eventpage)
                {
                    case '2':
                    {
                        if (eventbutton == '4')
                        {   //Insert action to perform if button 4 was pressed
                                
                            switch switch_Master.state
                            {
                                case ON:
                                {
                                    globalvar_string_plate01_jsonstring = '["p[2].b[4].bco=65535"]'
                                    switch_Master.sendCommand(OFF)
                                }
                                case OFF:   
                                {
                                    globalvar_string_plate01_jsonstring = '["p[2].b[4].bco=25388"]'
                                    switch_Master.sendCommand(ON)
                                }     
                            }
                            string_haspplate01_commandjson.sendCommand(globalvar_string_plate01_jsonstring)
                        }
                        else if (eventbutton == '5')
                        {   //Insert action to perform if button 4 was pressed
                            
                            if ( number_openhab2operatingmodus_specialmode.state == 2)
                            {
                                globalvar_number_openhab2operatingmodus_specialmode = 0
                            }
                            else if (number_openhab2operatingmodus_specialmode.state != NULL && number_openhab2operatingmodus_specialmode.state != UNDEF) 
                            {
                                globalvar_number_openhab2operatingmodus_specialmode = (number_openhab2operatingmodus_specialmode.state as DecimalType).intValue
                                globalvar_number_openhab2operatingmodus_specialmode = globalvar_number_openhab2operatingmodus_specialmode + 1
                            }
                            else 
                            {
                                globalvar_number_openhab2operatingmodus_specialmode = 0
                            }
                            
                            if (globalvar_number_openhab2operatingmodus_specialmode == 0)
                            {
                                globalvar_string_plate01_jsonstring = '["p[2].b[5].txt=\\"Urlaub\\""]'
                                number_openhab2operatingmodus_specialmode.sendCommand(globalvar_number_openhab2operatingmodus_specialmode)
                            }
                            else if (globalvar_number_openhab2operatingmodus_specialmode == 1)
                            {
                                globalvar_string_plate01_jsonstring = '["p[2].b[5].txt=\\"Alarm\\""]'
                                number_openhab2operatingmodus_specialmode.sendCommand(globalvar_number_openhab2operatingmodus_specialmode)
                            }
                            else if (globalvar_number_openhab2operatingmodus_specialmode == 2)
                            {
                                globalvar_string_plate01_jsonstring = '["p[2].b[5].txt=\\"Alarm Aus\\""]'
                                number_openhab2operatingmodus_specialmode.sendCommand(globalvar_number_openhab2operatingmodus_specialmode)
                            }

                         string_haspplate01_commandjson.sendCommand(globalvar_string_plate01_jsonstring)
                        }
                    }
                    case '6':
                    {
                        if (eventbutton == '4')
                        {   //Insert action to perform if button 4 was pressed
                                
                            switch switch_hueonoffgroup10.state
                            {
                                case ON:
                                {
                                    globalvar_string_plate01_jsonstring = '["p[6].b[4].bco=65535"]'
                                    switch_hueonoffgroup10.sendCommand(OFF)
                                }
                                case OFF:   
                                {
                                    globalvar_string_plate01_jsonstring = '["p[6].b[4].bco=25388"]'
                                    switch_hueonoffgroup10.sendCommand(ON)
                                    number_huescenegroup10.sendCommand(10)
                                    dimmer_hueonoffgroup10.sendCommand(100)
                                }     
                            }
                        }
                        else if (eventbutton == '5')
                        {   //Insert action to perform if button 4 was pressed
                                
                            switch switch_hueonoffgroup3.state
                            {
                                case ON:
                                {
                                    globalvar_string_plate01_jsonstring = '["p[6].b[5].bco=65535"]'
                                    switch_hueonoffgroup3.sendCommand(OFF)
                                }
                                case OFF:   
                                {
                                    globalvar_string_plate01_jsonstring = '["p[6].b[5].bco=25388"]'
                                    switch_hueonoffgroup3.sendCommand(ON)
                                    number_huescenegroup10.sendCommand(10)
                                    dimmer_hueonoffgroup3.sendCommand(100)
                                }     
                            }
                        }
                        string_haspplate01_commandjson.sendCommand(globalvar_string_plate01_jsonstring)
                    }
                    case '7':
                    {
                        /*
                            Act on buttons/dimmers from Page 7 here
                        */
                        if (eventbutton == '4')
                        {
                            if (globalvar_number_plate01_tempdoublepage == 1)
                            {
                                globalvar_number_plate01_tempdoublepage = 11
                            }
                            else 
                            {
                                globalvar_number_plate01_tempdoublepage = 1
                            }
                            
                             //HASP_Plate01_Page_Current.sendCommand(1)
                            //Insert action to perform if button 4 was pressed
                        }
                        else if (eventbutton == '5')
                        {
                            number_haspplate01_pagecurrent.sendCommand(2)
                            //Insert action to perform if button 5 was pressed
                        }
                        else if (eventbutton == '6')
                        {
                            number_haspplate01_pagecurrent.sendCommand(3)
                            //Insert action to perform if button 6 was pressed
                        }
                        else if (eventbutton == '7')
                        {
                            number_haspplate01_pagecurrent.sendCommand(4)
                            //Insert action to perform if button 7 was moved
                        }  
                        else if (eventbutton == '8')
                        {
                            number_haspplate01_pagecurrent.sendCommand(5)
                            //Insert action to perform if button 8 was moved
                        }
                        else if (eventbutton == '9')
                        {
                            number_haspplate01_pagecurrent.sendCommand(6)
                            //Insert action to perform if button 9 was moved
                        }
                        else if (eventbutton == '10')
                        {
                            number_haspplate01_pagecurrent.sendCommand(7)
                            //Insert action to perform if button 10 was moved
                        }
                        else if (eventbutton == '11')
                        {
                            number_haspplate01_pagecurrent.sendCommand(8)
                            //Insert action to perform if button 11 was moved
                        }         
                        else if (eventbutton == '12')
                        {
                            number_haspplate01_pagecurrent.sendCommand(9)
                            //Insert action to perform if button 12 was moved
                        }     
                        else if (eventbutton == '13')
                        {
                           //Insert action to perform if button 13 was moved
                        }  
                        else if (eventbutton == '14')
                        {
                            
                            logInfo("handle HASP plate01 page", globalvar_number_plate01_tempdoublepage.toString())
                            if ( globalvar_number_plate01_tempdoublepage == 1)
                            {
                                globalvar_number_plate01_tempdoublepage = 10
                            }
                            else 
                            {
                               number_haspplate01_pagecurrent.sendCommand(0)
                            }
                            //Insert action to perform if button 14 was moved
                        }  
                        else if (eventbutton == '15')
                        {
                            logInfo("handle HASP plate01 page ", globalvar_number_plate01_tempdoublepage.toString())
                            number_haspplate01_pagecurrent.sendCommand(globalvar_number_plate01_tempdoublepage)
                            globalvar_number_plate01_tempdoublepage = 0
                            //Insert action to perform if button 15 was moved
                        }   
                        switch_haspplate01_light.sendCommand(ON) //refresh backlight timer following button press                     
                    }
                    case '8':
                    {
                        if (eventbutton == '4')
                        {   //Insert action to perform if button 4 was pressed
                                
                            switch switch_hueonoffgroup10.state
                            {
                                case ON:
                                {
                                    globalvar_string_plate01_jsonstring = '["p[8].b[4].bco=65535"]'
                                    switch_hueonoffgroup10.sendCommand(OFF)
                                }
                                case OFF:   
                                {
                                    globalvar_string_plate01_jsonstring = '["p[8].b[4].bco=25388"]'
                                    number_huescenegroup10.sendCommand(10)
                                    switch_hueonoffgroup10.sendCommand(ON)
                                    dimmer_hueonoffgroup3.sendCommand(100)
                                }     
                            }
                            string_haspplate01_commandjson.sendCommand(globalvar_string_plate01_jsonstring)
                        }
                        else if (eventbutton == '5')
                        {
                            if ( number_huescenegroup10.state == 13)
                            {
                                globvar_number_huescenegroup10 = 0
                            }
                            else if (number_huescenegroup10.state != NULL && number_huescenegroup10.state != UNDEF) 
                            {
                                globvar_number_huescenegroup10 = (number_huescenegroup10.state as DecimalType).intValue
                                globvar_number_huescenegroup10 = globvar_number_huescenegroup10 + 1
                            }
                            else 
                            {
                                globvar_number_huescenegroup10 = 0
                            }

                            if (globvar_number_huescenegroup10 == 0)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"OFF\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 1)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"ON\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 2)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Sonnenuntergang Savanne\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 3)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Tropendämmerung\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 4)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Nordlichter\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 5)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Entspannen\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 6)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Lesen\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 7)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Frühlingsblüten\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 8)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Konzentration\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 9)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Aktivieren\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 10)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Hell\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 11)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Gedimmt\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 12)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Nachtlicht\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else if (globvar_number_huescenegroup10 == 13)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Auto\\""]'
                                number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
                            }
                            else 
                            {
                                logInfo("loggerName", "else")
                            }
                            
                        }
                        else if (eventbutton == '6')
                        {
                            if (number_huescenegroup10.state == 12)
                            {
                                globalvar_string_plate01_jsonstring = '["p[8].b[6].bco=65535"]'
                                switch_hueonoffgroup10.sendCommand(OFF)
                                number_huescenegroup10.sendCommand(0)
                            }
                            else 
                            {
                                switch_hueonoffgroup10.sendCommand(ON)
                                globalvar_string_plate01_jsonstring = '["p[8].b[6].bco=25388"]'
                                number_huescenegroup10.sendCommand(12)
                            }                            
                        }
                        else if (eventbutton == '9')
                        {
                            dimmer_hueonoffgroup10.sendCommand(Double.parseDouble(string_haspplate01_statejsonvalue.state.toString()))
                            //logInfo("handle HASP plate01 dimmer_hueonoffgroup10 ", dimmer_hueonoffgroup10.state.toString())
                        }
                        string_haspplate01_commandjson.sendCommand(globalvar_string_plate01_jsonstring)
                    }
                }
            }
        }    
    }
    catch(Throwable T) {
      logError("Error", "Some bad stuff happened in \"handle HASP plate01\": " + T.toString)
    }
    finally {
       
    }
end

These ar my settings running on a 8GB pi

EXTRA_JAVA_OPTS="-Xms2048m -Xmx2048m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/var/log/openhab2/java.log"

Since the new update/upgrade I have done today on my openhabian no more issues occurs…