I have few workflows that takes care of a 3-level based approval process. The whole process takes roughly 20 mins for a single file (1mb). This timing is on the system side only.
If use is processing 300 reports, then this time goes up exponentially (somewhat) The approval workflow is a statemachine workflow. What are the common ways to speed up such chunky workflows?
Can you provide some more details regarding the workflow? The size of a file itself is not affecting the speed, unless you are not working somehow with its contents, but even then this shouldn't be an issue.
I would rather look into actions you have in your workflow. Do you use any from the "Office 365" group? Do you use any Query XML or Update XML actions? Do you use any Pause actions?
So lets take one of the big workflows: The approval statemachine.
This does update the list (status) and also write backs to SharePoint (workflow history) based on the status. Once a task is assigned, it can be approved, rejected, canceled or reassigned. We do not use Office 365 action-group. There are 'query list' actions but nothing related to XML though.
There are no pause actions. There are few emails going out based on the state of the workflow. Let me know if you need more info. Thanks for looking into this!
Please be aware that between every change of state inside your state machine the workflow has to wait for the workflow timer job to change the state. Changes of states are not executed immediately! Depending on the workload on your tenant and some other factors, every change of state can take up to 5-10 minutes. This is just how the state machine works and may explain the duration of your workflow.
Also think about if this is only bugging you while developing/testing or a real issue for the production.