Ever since we have used ProcessMaker we have been facing with an issue that we have not understood. It goes like this.
a] Time between clicking an entry in Inbox to appearance of Case # on the top left corner of the screen = 1 to 2 secs.
b] Time taken between start of first trigger before form load to end of last trigger before form load = 1 sec or so, depending upon the trigger complexity.
c] Time taken between completion of triggers before form load and start of form load on the user screen = 2 to 40 secs or even more, depending on the size of data stored.
d] Time taken between start of form load to end of form load = 1 to 5 secs or more, depending on # of fields and any MySQL scripts that are run before the user sees the screen.
The one that concerns us is the time c] mentioned above. On my Windows 10, 12 GB RAM laptop, where I do some process development, I see that the time c] varies from 1-2 secs for a 13K data size (as judged from the APP_DATA field) to 32 secs for a 188K data size.
This time c] seems to depend only on the amount of data stored, and maybe on the # of PMT report tables defined. But, the estimate is that it depends more on the data stored.
The time that c] takes on the production server, which is a Linux, Centos 7, 16GB RAM server, is probably half of what is observed on my Windows 10 laptop.
I had conducted an experiment to see if this issue is related in some way to the interaction between PHP and MySQL. I created a dummy PMT table and then wrote a trigger to insert records into MySQL. I did not see a problem there. The record insertion was happening quickly.
My perception is that this is related in some way to the way PM handles saving of data from the session to MySQL. The reason I say this is that I think that data is saved from the session into the APP_DATA field as well as into the PMT Reports tables when all the triggers are executed before the form loads, or when a save action is given from the Dynaform, or when all triggers are executed after form unload, or when the triggers of other sections like Assignment, Before Routing and After Routing are executed.
This is of course, just based on my observation and perception.
Is this normal behaviour?
Is there a method to reduce time c]?