2

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

这个非常基本的用户表播种器需要 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 文件系统减速,但我不确定这里发生了什么。任何帮助都会很棒。

4

1 回答 1

5

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

查看更多为什么 php 的 password_hash 这么慢?

于 2016-08-27T00:32:50.733 回答