googleads / googleads-java-lib

Google Ad Manager SOAP API Client Library for Java
Apache License 2.0
226 stars 360 forks source link

Relatively long request processing time #196

Closed milekj closed 10 months ago

milekj commented 4 years ago

Hi! I'm performing simple MutateMembersOperation containing only two hashed emails. Total AdwordsUserListServiceInterface:mutateMembers execution time is 1.8 sec which seems a lit bit too long for me. I've profiled the code (results below) - vast majority of time is spent in org.apache.axis.transport.http.HTTPSender.readHeadersFromSocket() name.

I'm using 4.10.0 version with adwords-axis. I've got developer token and requests concern test accounts. Are these numbers common for API / client? Is it possible that performance improves for non-test accounts?

Thanks for any help.

Logged request and response: request.txt

Profiling results: image

nwbirnie commented 4 years ago

Hey thanks for getting in touch.

Here it looks like the time is being spent on BufferedInputStream.read() - this would suggest that the time isn't being spent in the client library, per se, it's waiting for a response from the server, and the headers just happen to be the first thing in the response.

I'm curious, why is 1.8 seconds too long in this case? Are you sending a high QPS? You can send up to 500k users in a single request.

milekj commented 4 years ago

Thanks for the quick response.

It seemed too long because I send only two emails for testing and suppose that the time will increase further when sending e. g. a couple of thousands users in production. We use a thread pool executing various tasks and I'm concerned that blocking them will reduce application performance.

Moreover I compared this to responseTime=428 and wondered that maybe there's something wrong with my configuration.

christopherseeley commented 10 months ago

The AdWords API has been turned down and replaced by the Google Ads API. Closing as stale.