Laravel:为什么数据库播种机在我的快速电脑上速度很慢

时间:2016-08-27 00:26:12

标签: php laravel vagrant virtualbox laravel-seeding

我在Win10上的Homestead Vagrant盒子上运行典型的Laravel版本5.2.23,带有快速NVMe ssd,Skylake i7 6700K cpu,16GB内存。 VirtualBox 5.0.26 r108824。我有4GB和2个CPU分配给VM。几乎所有东西都是默认的。

这个非常基本的用户表播种器需要45秒才能完成1000条记录,而且在使用Laravel 4.2之前,我的性能更快。当我点击localhost站点时,它会快速加载数据(我只是回显index.html中的整个1000记录用户表),所以它看起来不像VM和Win10之间的网络流量减速,而是idk。

播种机如下。

class UsersTableSeeder extends Seeder {

public function run() {
    DB::table('users')->truncate();

    for( $ii = 0; $ii < 1000; $ii++)
    DB::table('users')->insert([
        'name' => $ii,
        'email' => $ii.'@gmail.com',
        'password' => bcrypt('secret'),
    ]);


}

}

我知道有时基于Linux的VM可能会出现奇怪的Windows文件系统速度下降,但我不确定这里会发生什么。任何帮助都会很棒。

1 个答案:

答案 0 :(得分:4)

因为bcrypt函数调用很慢。通常一次操作需要大约50ms(取决于机器它可以更快)。 (50ms * 1000op)/ 1000ms = 50s。

查看更多Why is php's password_hash so slow?