Do a var_dump / debug to see what’s actually being brought through. You can also check your client developer console, Network, Document, Header to see if it’s content encoding is gzip so the data is at least compressed.
There is an insane amount of data attached to CakePHP objects, so it may be smarter to just set that which you actually need - perhaps putting it into an array in your controller and passing only that.
As mentioned by others in your previous questions about timeouts, it could just be unoptimised code in your controllers. For comparison, my CakePHP app can load 11,300 records of a table of 16 columns containing long strings, dates etc in 3 and a half seconds (I have FTTP internet downloading at 55Mbps).
Edit: correction on that timeout. 3.5 seconds is how long it takes for the browser client to AJAX request my web server which is being long-polled by my actual PC here, which gets the request, packages the data, sends it up to the webserver, then back down to the client as the returned AJAX - so the true time for my 11,300 records is most likely under a second.