Details
-
Type: Improvement
-
Status: Done/Fixed
-
Priority: Minor
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.6.6
-
Fix Version/s: 4.7
-
Component/s: None
-
Labels:
-
Documentation Required?:None
-
Funding Source:Contributed Code
Description
This is an issue up for discussion. I've been trying to look at ways of improving the performance of the API.
My test case was running 25 Contact 'get' calls, for a single ID, using the PHP API.
Xdebug reports that there is one particularly expensive recursive function that is called during API get requests:
_civicrm_api3_separate_values
In: api/v3/utils.php
This function looks in the result and explodes any values that use the 'separator' character into an array.
Are there any ways we could optimise this particular function, or the approach of having to call it on the entire result?
I need to do some more looking in to it, but I'm not sure why it would be called 3900 times for just 25 API calls returning one contact. (Unless I'm misunderstanding the output from xdebug).
Attachments
Issue Links
- provides patch for
-
CRM-11256 optimization to _civicrm_api3_separate_values
- Done/Fixed
- links to