Win7 上的 XAMPP 太慢

2022-08-30 16:14:57

我在Windows 7 Ultimate上运行XAMPP 1.7.1。除了速度之外,一切(Apache和MySQL)都运行良好。

当我打开 http://localhost/ 时,我必须等待大约1-3秒才能查看网页。在我看来,它最多应该只有几百毫秒。

基本事实:

  • 在等待加载本地主机网页时,状态栏显示“正在等待本地主机...”
  • CPU 仍处于空闲状态(加载时不会增加活动)
  • 在localhost上没有苛刻的PHP脚本,问题是当有简单的phpinfo()即使有很长的重脚本时。
  • 禁用 MySQL 服务器不会影响速度
  • 我的电脑: AMD Turion 64 X2;1,6 GHz 双核、2 GB 内存、100 GB 硬盘

我做了一个简单的基准PHP脚本来测试HDD / CSS速度:

<?php

function getmicrotime() { 
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

function testReadWrite() {
 $timeStart = getmicrotime();
 $filename = "test.txt";

 file_put_contents( $filename, '' ); // prepare empty file

 for ( $i = 0; $i < 1000; $i++ ) {
  $a = file_get_contents( $filename );
  file_put_contents( $filename, $a . '.' );
 }

 return round( getmicrotime() - $timeStart, 3 );
} 


function testCpuSpeed() {
 $timeStart = getmicrotime();

 $var = '';
 for ( $i = 0; $i < 100000; $i++ ) {
  $var = sha1( md5( $i * $i * $i * $i * $i * $i * $i * $i * $i * $i ) );
 }

 return round( getmicrotime() - $timeStart, 3 );
}

echo "Read/write #1: " . testReadWrite() . "<BR>";
echo "Read/write #2: " . testReadWrite() . "<BR>";
echo "Read/write #3: " . testReadWrite() . "<BR>";
echo "CPU speed #1: " . testCpuSpeed() . "<BR>";
echo "CPU speed #2: " . testCpuSpeed() . "<BR>";
echo "CPU speed #3: " . testCpuSpeed() . "<BR>";

?>

我的电脑结果:

  • 读/写: 5.134 / 3.431 / 3.494
  • 处理器速度: 0.816 / 0.767 / 0.795

虚拟主机结果:

  • 读/写: 7.768 / 7.69 / 7.371
  • 处理器速度: 0.232 / 0.234 / 0.234

我的服务器的结果之一(几乎和我的PC一样空闲的计算机,但速度有点快):

  • 读/写: 0.088 / 0.168 / 0.185
  • 处理器速度: 0.191 / 0.189 / 0.189

所以我不认为这是因为我的PC速度,但我确信还有另一个问题。您是否有Windows 7(或Vista)上的XAMPP速度经验?

谢谢。


答案 1

如果 XAMP 在 Windows 7 下运行缓慢,则防火墙设置没有区别。
安全要点防病毒软件没有任何区别。

为了解决这个问题,有两件事有很大的不同:

1) 在 windows\system32\drivers\etc\hosts 中添加以下行:

127.0.0.1 127.0.0.1

127.0.0.1 本地主机

2) 如果您使用的是 PHP,在 XAMP php 中.ini文件中取消注释 eaccelerator 行:

zend_extension = “C:\xampp\php\ext\php_eaccelerator_ts.dll”

在这两个更改之后,重新启动Apache,它将更快。


答案 2

不确定这可能是导致您问题的原因,但这可能是一个想法 :您是否有一行看起来像这样:

::1 localhost

在您的主机中(如果我没记错的话,它应该在C:\WINDOWS\system32\drivers\etc\hosts等的地方)文件?

如果是,请在开头添加 a 来注释该行。#


这样,唯一关于本地主机的行应该是

127.0.0.1    localhost

这是一个 IPv4 地址 ;而你评论的那个是IPv6 - 这对你试图做的事情没有用。


正如我所说,不确定您的问题是否与此有关,但是我已经看到过几次这种sugestion有助于解决与您的问题非常相似的问题(即在服务器上执行任何操作之前等待很长时间)。


推荐