检查变量初始化的性能

时间:2015-08-21 05:28:16

标签: php variables laravel-4

我有如下循环,它的运行超过6000条记录,

foreach ($csv as $value) {
    $research = ResearchData::create(array('company_id' => Input::get('company'), 'date' => Input::get('date')));
}

在这里我使用了2个值company_id和date。 我想知道从跟随代码

中使用此方法的最佳方法是什么

1 ................ ....................

$company_id=Input::get('company_id');
$date=Input::get('date');

foreach($csv as value){
   $research=ResearchData::create(array('company_id'=>$company_id,'date'=>$date));
}

..................... 2 ...................

foreach ($csv as $value) {
    $research = ResearchData::create(array('company_id' => Input::get('company'), 'date' => Input::get('date')));
}

2 个答案:

答案 0 :(得分:2)

从性能的角度来看,数字1会更快,但只是因为Input::get需要更长的时间,因为它会进行一些检查,数组连接并最终从数组中获取内容。这将花费完全可以忽略的时间,但是选项1执行此操作一次,而选项2将在循环的每次迭代中执行此操作

从任何其他角度来看(代码清晰度,文档等),它完全基于意见。

答案 1 :(得分:0)

您可以进行批量插入。我没有进行性能检查,但我希望性能更好。检查以下内容:

$company_id=Input::get('company_id');
$date=Input::get('date');

$data = array_fill(0, count($csv) - 1, ['company_id' => $company_id, 'date' => $date]); // skip the large foreach

ResearchData::insert(array_values($data)); // skip the numeric keys

文档: