如何将3个数组放在内存中,然后引用它们以避免超过3次的API调用


How do you put 3 arrays in memory and then reference them to avoid hitting API calls more then 3 times

在我的代码中,我有3个函数基本嵌套。一个叫一个,然后又叫另一个。代码执行非常缓慢。我相信,因为这些API调用可以包含大量的数据,并且它们运行的次数比对性能产生影响的次数要多。

代码示例如下:

$data['object'] = 'domain';
    $data['action'] = 'read';
    $data['format'] = 'json'; 
        if($response = $this->request($data)){
            $obj = json_decode($response,true);
        .......
                }
        }else{
            return $response;
        }

obj获取所有数据。

我能否以某种形式创建一个私有数组,然后将所有结果写入其中,然后运行我的语句,而不是多次调用API ?

我被引导相信,因为这些API调用可以包含大量数据,并且它们被运行的次数超过一次,这对性能有影响。

优化的黄金法则是,在不首先测量之前,不要进行优化。使用分析器运行代码,并告诉您哪些代码执行得最多,哪些代码花费的时间最长。如果你不测量,你可能会加速错误的东西。

对于PHP,您可能希望从Xdebug开始。

一旦你知道什么是慢的,那么你就可以考虑如何加快速度。

如果您不希望返回的数据从一个调用到下一个调用改变,那么,是的,您可以将结果存储在本地(甚至预处理它们以便于使用),然后从那里重用它们。在花哨的技术术语中(取决于实现),这将被称为"缓存"或"记忆"。