Why is my proxy slow and how do I speed it up
Latency through a proxy is your connection to the proxy, plus the proxy's connection to the target. Slowness comes from one of a handful of places.
Distance
Every request makes two hops. Routing a UK request through a Singapore exit to reach a UK site pays for the trip twice. Pick the exit closest to the target unless the location itself is the point.
Proxy type
Residential and mobile exits run over consumer connections and are inherently slower than datacenter. If speed matters more than IP trust, datacenter is the faster class.
Too much concurrency
Past a certain thread count you queue rather than parallelise, and everything gets slower at once. Halve your concurrency and compare — if throughput improves, you were saturated.
DNS
Resolving every hostname on every request adds a round trip. Cache lookups, or resolve remotely through SOCKS5.
No connection reuse
Opening a fresh TCP and TLS connection per request costs several round trips. Enable keep-alive and use a session object rather than a bare request per call.
The target
Slow pages are slow through any route. Measure the same URL directly and through the proxy — if both are slow, the proxy is not the cause.
Measuring properly
curl -x http://USER:PASS@PROXY_IP:PORT -o /dev/null -s -w "connect: %{time_connect}s ttfb: %{time_starttransfer}s total: %{time_total}s\n" https://example.com
A high time_connect points at the proxy leg; a high time_starttransfer with a fast connect points at the target.
Related: What is the speed of the proxy and What is the Response Time of your proxies.