Can you please provide a full reproducible file, rather than a single file. 
That we the team can benchmark.

On Tuesday, May 16, 2023 at 1:55:11 PM UTC-4 Adam Walters wrote:

> Hello,
>
> Recently my program started running extremely slow and upon further 
> investigation found that this '{method 'next_event' of 
> 'grpc._cython.cygrpc.SegregatedCall' objects}' was taking over 5 seconds 
> per call.
>
> I am using all of the latest versions grpc and google-ads packages.
>
> Below is an example of the code that is running and the results from a 
> cProfile run:
> from google.ads.googleads.client import GoogleAdsClient
> from google.ads.googleads.v13.services.services.google_ads_service import 
> pagers
> import logging
>
> logging.basicConfig(level=logging.INFO, format='[%(asctime)s - 
> %(levelname)s] %(message).5000s')
> logging.getLogger('google.ads.googleads.client').setLevel(logging.INFO)
>
> client = GoogleAdsClient.load_from_storage("google-ads.yaml")
> google_ads_service = client.get_service("GoogleAdsService", version='v13')
>
> class GoogleQuery:
> """A class to query Google Ads API
>
> Attributes:
> client: An initialized GoogleAdsClient instance.
> mcc_id: The Google Ads MCC ID
> search_accounts_query: A query to return all search accounts
> display_accounts_query: A query to return all display accounts
>
> Methods:
> get_existing_search_accounts: Returns a dictionary of existing search 
> accounts
> get_existing_display_accounts: Returns a dictionary of existing display 
> accounts
> run_gaql_query: Runs a GAQL query and returns a Pager object
> """
>
> def __init__(self):
> self.client = client
> self.mcc_id = "XXXXXXXXXX"
> self.search_accounts_query = """SELECT
> customer_client.id,
> customer_client.resource_name,
> customer_client.descriptive_name,
> customer_client.manager,
> customer_client.applied_labels
> FROM 
> customer_client
> WHERE
> customer_client.manager = false 
> AND customer_client.id IS NOT NULL 
> AND customer_client.descriptive_name LIKE '%Search%'
> AND customer.status = 'ENABLED'"""
>
> @staticmethod
> def run_gaql_query(query: str, customer_id) -> pagers.SearchPager:
> """runs GAQL query through Google Ads API
> Args:
> customer_id: customer ID being queried
> query: the actual GAQL query being ran
> Returns:
> Returns a pagers.SearchPager response of the raw data
> """
> return google_ads_service.search(
> customer_id=customer_id,
> query=query
> )
>
> def get_existing_search_accounts(self) -> dict:
> """runs GAQL query through Google Ads API
>
> Returns:
> Returns a dict of {internal_id, account_name}
> """
> response = self.run_gaql_query(self.search_accounts_query, self.mcc_id)
> return {row.customer_client.descriptive_name[-8:]: 
> row.customer_client.descriptive_name for row in response}
>
> gaql = GoogleQuery()
> gaql.get_existing_search_accounts()
>
> # cProfile Results from above code Tue May 16 13:31:28 2023   
>  output_test.pstats
>
>          991213 function calls (973122 primitive calls) in 10.099 seconds
>
>    Ordered by: internal time
>    List reduced from 6168 to 20 due to restriction <20>
>
>    ncalls  tottime  percall  cumtime  percall filename:lineno(function)
>         1    7.398    7.398    7.401    7.401 {method 'next_event' of 
> 'grpc._cython.cygrpc.SegregatedCall' objects}
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/f5df8252-554a-4363-aa35-8f0209451286n%40googlegroups.com.

Reply via email to