php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #73277 crc32() not using CPU capabilities
Submitted: 2016-10-09 16:45 UTC Modified: -
From: spam2 at rhsoft dot net Assigned:
Status: Open Package: Performance problem
PHP Version: 7.0.11 OS: Linux
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2016-10-09 16:45 UTC] spam2 at rhsoft dot net
Description:
------------
for short messages crc32 seems to be the fastest way but for long messages like a whole page content for a ETAG-HTTP-Header it's the slowest

md5:   0.48954606056213
sha1:  0.57872104644775
crc32: 0.64182901382446

that should not be the case on modern Intel CPUs like SnadyBrdige or newer which support a accelerated instruction



Test script:
---------------
$test_content = file_get_contents('global.inc.php', true);

echo '<strong>md5: </strong>' . md5($test_content) . MY_LE;
$profiler->reset();
for($x=1;$x<5000;$x++)
{
 $rw = md5($test_content);
}
echo $profiler->get() . '<br /><br />' .  MY_LE;

echo '<strong>sha1: </strong>' . sha1($test_content) . MY_LE;
$profiler->reset();
for($x=1;$x<5000;$x++)
{
 $rw = sha1($test_content);
}
echo $profiler->get() . '<br /><br />' .  MY_LE;

echo '<strong>crc32: </strong>' . abs(crc32($test_content)) . MY_LE;
$profiler->reset();
for($x=1;$x<5000;$x++)
{
 $rw = crc32($test_content);
}
echo $profiler->get() . '<br /><br />' .  MY_LE;



Patches

Add a Patch

Pull Requests

Add a Pull Request

 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Sun Nov 17 17:01:36 2019 UTC