It depends a lot on your use case. There are many options. In your case, the size of the contract is huge, so "small" saving tricks will not work. So I propose one of the following.
- You might use external Libraries (You offload some logic there)
- You separate logic into two or more contracts.
- You might resort to using the Dimond proxy pattern (which allows contracts of unlimited size)