I am trying to deploy thousands of contracts on Ganache GUI. At first, it process all transactions very fast (deploy contracts and transactions for calling setters functions) . After some transactions, may 500/1000 or more, it become so slow and process a single transaction in 5-8 seconds or sometime even more . Is it normal ? It is because of calculating difficulty level , automatically ?....
We faced similar issues with our integration tests - lots of transactions are very slow with the Ganache GUI (especially unter Windows the UI has update problems).
The command line interface ganache-cli is much more stable and runs in terminal as well as in docker container. From the functional point of view you have everything what you need in ganache-cli.
Ganache GUI is nice for demonstrations to management & customers or training sessions. During development and for test purposes it's better to use the ganache-cli.
Ganache is not well suited for complex deployments or resource intensive contracts. Although 1000 txs doesn't seems to much, perhaps it is constrained by your VM resources like memory or CPU.
As alternative I'll suggest to try geth or parity in development chain mode. They should work quite similar to ganache in automine mode.