Skip to content

Instantly share code, notes, and snippets.

@fruitl00p
Created October 13, 2016 08:58
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fruitl00p/86321d00aef0e79c1c2b9a6340525eaa to your computer and use it in GitHub Desktop.
Save fruitl00p/86321d00aef0e79c1c2b9a6340525eaa to your computer and use it in GitHub Desktop.
gzdeflate / gzcompress / gzencode
<?php
// GLOBALS available: $db, $currentImplementation, $currentUser, $currentSite, $currentPage
// PARAMS available: $sqlArray (array), $request (Web_request)
//
// GLOBALS available: $db, $currentImplementation, $currentUser, $currentSite, $currentPage
// PARAMS available: $sqlArray (array), $request (Web_request)
//
$string = 'thisismystringthisismystringthisismystringthisismystringthisis'
. 'mystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthis'
. 'ismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringth'
. 'isismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystring'
. 'thisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystri'
. 'mystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthis'
. 'ismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringth'
. 'isismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystring'
. 'thisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystri'
. 'mystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthis'
. 'ismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringth'
. 'isismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystring'
. 'thisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystri'
. 'mystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthis'
. 'ismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringth'
. 'isismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystring'
. 'thisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystri'
. 'mystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthis'
. 'ismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringth'
. 'isismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystring'
. 'thisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystri'
. 'mystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthis'
. 'ismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringth'
. 'isismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystring'
. 'thisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystri'
. 'mystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthis'
. 'ismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringth'
. 'isismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystring'
. 'thisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystri'
. 'mystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthis'
. 'ismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringth'
. 'isismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystring'
. 'thisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystri'
. 'mystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthis'
. 'ismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringth'
. 'isismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystring'
. 'thisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystri'
. 'mystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthis'
. 'ismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringth'
. 'isismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystring'
. 'thisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystringthisismystri'
;
echo '<pre>';
echo 'strlen original: '. mb_strlen($string) . PHP_EOL;
echo 'strlen gzdeflate: '. mb_strlen(gzdeflate($string)) . PHP_EOL;
echo 'strlen gzcompress: '. mb_strlen(gzcompress($string)) . PHP_EOL;
echo 'strlen gzencode: '. mb_strlen(gzencode($string)) . PHP_EOL;
$iterations = 100; // 1000000;
$i=$iterations;
$start1 = microtime(true);
while($i--) {
echo gzinflate(gzdeflate($string)) !== $string ? '!':'';
}
$end1 = microtime(true);
$i=$iterations;
while($i--) {
echo gzuncompress(gzcompress($string)) !== $string ? '@':'';
}
$end2 = microtime(true);
$i=$iterations;
while($i--) {
echo gzdecode(gzencode($string)) !== $string ? '#':'';
}
$end3 = microtime(true);
echo 'gz de-in flate: '. ($end1 - $start1) . PHP_EOL;
echo 'gz un-com press: '. ($end2 - $end1) . PHP_EOL;
echo 'gz de-en code: '. ($end3 - $end2) . PHP_EOL;
@harryqt
Copy link

harryqt commented Apr 20, 2020

PHP 7.4.4, gzdeflate is the fastest and shortest.

strlen original: 5022
strlen gzdeflate: 38
strlen gzcompress: 43
strlen gzencode: 56
gz de-inflate: 0.0043709278106689
gz un-compress: 0.0044679641723633
gz de-encode: 0.0048530101776123

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment