@ 2013-09-25T11:13:36Z <?php
/**
* This is a perfomance test suite
*/
error_reporting( E_ALL ^ E_DEPRECATED );
define( 'CLI_CALL', (PHP_SAPI == 'cli') );
$ERRORS_VERBOSE = true;
###########################################################
# functions
###########################################################
function start( $first, $second, $description, $iteration ) {
echo '
###############################################<br/>
<strong>'.$first.' vs. '.$second.': ['.$iteration.']</strong><br/>';
if( !empty($description) ) {
echo '<i>'.$description.'</i><br/>';
} // if
}
function result( $first, $second, $iteration ) {
echo '<strong>Time/Call: '.round($first/$iteration*1000000, 2).'µsec / '.round($second/$iteration*1000000, 2).'µsec<br/>';
echo 'Speedup: '.round(($first/$second)*100).'% ['.round($first/$second, 1).'x faster]</strong><br/><br/><br/>';
flush();
}
###########################################################
# guinea pigs
###########################################################
date_default_timezone_set( 'UTC' );
$dateTimeNow = new DateTime();
// text with 10 word and 68 chars in 1 lines
$shortString = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus jus';
// text with 95 word and 681 chars in 3 lines
$mediumString = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus justo. Morbi molestie augue non nisl. Sed tincidunt scelerisque tellus. Praesent blandit arcu ac sem. Curabitur commodo, turpis in vehicula tristique, libero neque venenatis metus, nec fermentum justo libero ac ante. In hac habitasse platea dictumst. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus laoreet ultricies enim. Suspendisse potenti. Phasellus placerat semper nibh.
Curabitur tincidunt. Nulla facilisi. Fusce quis nibh. In hac habitasse platea dictumst. Curabitur nunc magna, ultricies quis, mattis vel, pretium vitae, pede. Fusce faucibus. Ut quam pe';
// text with 1000 word and 6818 chars in 21 lines
$longString = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus justo. Morbi molestie augue non nisl. Sed tincidunt scelerisque tellus. Praesent blandit arcu ac sem. Curabitur commodo, turpis in vehicula tristique, libero neque venenatis metus, nec fermentum justo libero ac ante. In hac habitasse platea dictumst. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus laoreet ultricies enim. Suspendisse potenti. Phasellus placerat semper nibh.
Curabitur tincidunt. Nulla facilisi. Fusce quis nibh. In hac habitasse platea dictumst. Curabitur nunc magna, ultricies quis, mattis vel, pretium vitae, pede. Fusce faucibus. Ut quam pede, pulvinar eget, euismod eget, pellentesque non, tellus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas quis dolor. Vivamus ut nisl id orci ultrices blandit. Aliquam erat volutpat. Pellentesque felis. Nulla facilisi. Donec nulla erat, pharetra vel, commodo eget, tristique ac, pede. Etiam sagittis suscipit dui. Mauris imperdiet sodales diam.
Etiam quis mi. Maecenas erat dolor, pharetra et, rhoncus vehicula, commodo eu, dui. Proin eu velit. Integer feugiat. Phasellus euismod. Nunc lobortis, mi id pellentesque tempus, augue velit rhoncus purus, non iaculis orci tortor ut est. Donec id nibh sit amet eros interdum dictum. Pellentesque metus ligula, ullamcorper sit amet, faucibus eu, laoreet non, nunc. Cras at turpis. Nam nulla dolor, ullamcorper eu, sodales non, pellentesque et, velit. In ornare augue eu est. In hac habitasse platea dictumst. Quisque bibendum augue sed sem. Mauris hendrerit augue nec libero. Nullam eu urna eget erat dignissim fringilla. Ut at ante at velit gravida eleifend. Etiam sit amet sem. Integer venenatis. Nulla facilisi. Vivamus dignissim.
In hac habitasse platea dictumst. Proin commodo mauris id pede. Donec fringilla fermentum diam. Praesent vestibulum ante nec velit. Vestibulum placerat. Quisque ornare, pede at molestie condimentum, turpis nulla vehicula leo, sed sodales tellus est feugiat lectus. In vitae nulla. Nam gravida metus eget leo. Nullam sapien arcu, fermentum quis, vulputate id, auctor eget, ligula. Curabitur tincidunt, neque in semper laoreet, metus elit congue eros, ac cursus nibh justo id sapien. Phasellus massa nisi, pulvinar sed, rutrum lacinia, ultrices a, est. Praesent ac tortor. Quisque semper. Integer elementum vestibulum erat. Maecenas tincidunt justo id arcu. Vivamus laoreet arcu.
Ut dignissim felis vitae elit porttitor eleifend. Nunc neque. Proin eu turpis sit amet erat tincidunt feugiat. Sed arcu. In luctus. Vivamus rhoncus accumsan mauris. Nullam nisi pede, mollis congue, blandit ut, interdum sit amet, diam. Pellentesque in orci in tortor auctor volutpat. Aliquam quis tortor. Integer erat diam, congue a, aliquet at, blandit sed, mauris. Nullam aliquam. Maecenas nulla odio, mollis id, bibendum sed, laoreet eu, risus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque neque quam, sagittis sit amet, ultricies quis, volutpat sit amet, quam. Donec vel tellus eget turpis posuere tincidunt. Duis ligula metus, egestas vel, aliquet id, pharetra eu, leo. Suspendisse nisl nunc, hendrerit eget, tempor ut, rhoncus a, risus.
Donec sed massa. Nunc erat diam, facilisis quis, elementum sed, porttitor ut, sem. Proin rhoncus. Sed malesuada odio vitae ante. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed vitae leo non mi ornare lacinia. Curabitur massa risus, tincidunt vitae, elementum in, dignissim non, nibh. Cras euismod diam eu massa. Pellentesque augue risus, rutrum quis, posuere eu, tempus consequat, augue. Donec quis pede. Fusce blandit cursus turpis. Nam sit amet arcu. Sed eu ante quis quam imperdiet imperdiet. In hac habitasse platea dictumst. Morbi pellentesque. In hac habitasse platea dictumst. Vivamus sapien nisl, iaculis eu, rutrum id, tempor ac, nulla.
Fusce feugiat est vitae sapien. Proin auctor. Pellentesque vitae magna eu risus mattis laoreet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer condimentum neque eu lorem. Nullam convallis, diam sed pretium aliquet, nisi mauris tempor orci, eu congue tortor velit nec quam. Etiam at justo at lectus tempus ultricies. Aenean vehicula mollis quam. Donec et elit. Donec egestas tellus et odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce ullamcorper aliquam ligula. Curabitur porttitor porttitor velit. Vestibulum ac turpis et nisi tincidunt scelerisque.
Curabitur commodo. Sed dolor lacus, venenatis non, varius ac, commodo nec, orci. Fusce urna. Etiam euismod tincidunt risus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse risus. Maecenas ut pede sit amet ante feugiat laoreet. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis sit amet eros eget diam tincidunt malesuada. Morbi diam neque, lacinia vel, vulputate vitae, sodales ut, justo. Vestibulum risus. Duis libero. Aenean sit amet massa. In risus neque, tincidunt sit amet, volutpat sit amet, iaculis at, odio. Vestibulum arcu tellus, malesuada eget, aliquam sit amet, pharetra ac, purus. Sed a sapien. Maecenas sed nibh.
Duis vitae purus. Sed congue fringilla tortor. Curabitur sit amet lorem. Donec cursus. Cras enim turpis, volutpat eu, vulputate ac, hendrerit quis, lectus. Etiam non risus. Cras pharetra dictum libero. Nulla venenatis. Nullam aliquet egestas lorem. Maecenas diam urna, convallis non, placerat vel, lobortis ut, magna. Sed interdum vestibulum quam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Sed magna elit, adipiscing vel, blandit vel, pharetra eu, ligula. Ut nisl. Nunc euismod imperdiet ipsum. Pellentesque et leo. Proin volutpat augue eu ante. Vestibulum mattis, velit at placerat iaculis, magna lorem luctus turpis, vitae interdum libero felis id nisi. Donec faucibus lorem nec diam. Nunc mollis ligula vitae tortor. Aenean ac sapien. Duis tristique urna at purus. Vestibulum porta, mi non pulvinar suscipit, tortor tellus faucibus dolor, gravida convallis urna libero quis tortor. Vestibulum dictum lacinia mauris. Sed pretium.
Aenean ut lectus at mauris condimentum blandit. Sed mollis tempus lorem. Nulla ac lectus. Vestibulum diam turpis, rhoncus sed, interdum auctor, interdum eget, est. Vivamus eu nunc. Aenean cursus, nulla vel tristique iaculis, magna orci aliquet eros, vitae sodales nulla justo sed mi. Vivamus semper, sapien eget condimentum venenatis, felis quam scelerisque ipsum, sed posuere elit felis id sem. Mauris luctus mollis justo. Integer nec orci. Vestibulum at leo ut.';
$smallArray = array( 'a', 'b', 'c' );
$mediumArray = array( 'a', 'b', 'c', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' );
for( $i = 0; $i < 2600; ++$i ) {
$largeArray[$i] = chr($i%26+97).'-'.$i;
} // for
###########################################################
# main
###########################################################
htmlHeader();
/**
* md5 vs. sha1
*/
$iteration = 50000;
start( 'MD5', 'SHA1', null, $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$string = md5($mediumString);
}
$first = clock( 'md5' );
$i = $iteration;
while( --$i ) {
$string = sha1($mediumString);
}
$second = clock( 'sha1' );
result( $first, $second, $iteration );
/**
* foreach with and without reference
*/
$iteration = 5000;
start( 'foreach w/o reference', 'foreach w/ reference', null, $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
foreach ($largeArray as $key => $value) {
if ($value === '') {
$largeArray[$key] = null;
}
}
}
$first = clock( 'foreach w/o reference' );
$i = $iteration;
while( --$i ) {
foreach ($largeArray as &$value) {
if ($value === '') {
$value = null;
}
}
unset($value);
}
$second = clock( 'foreach w/ reference' );
result( $first, $second, $iteration );
/**
* date() function vs. DateTime object
*/
$iteration = 100000;
start( 'array_merge', '+', null, $iteration );
$flip = array_flip($mediumArray);
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = array_merge( $mediumArray, $flip );
}
$first = clock( 'array_merge' );
$i = $iteration;
while( --$i ) {
$result = $mediumArray + $flip;
}
$second = clock( '+' );
result( $first, $second, $iteration );
/**
* date() function vs. DateTime object
*/
$iteration = 100000;
start( 'dirname', 'basename', 'basename', $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = dirname( __FILE__ );
}
$first = clock( 'dirname' );
$i = $iteration;
while( --$i ) {
$result = basename( __FILE__ );
}
$second = clock( 'basename' );
result( $first, $second, $iteration );
/**
* empty function call vs. small function call
*
* we try to show how expensive it is to make
* any kind of function call
*/
$iteration = 1000000;
start( 'empty function', 'small function', null, $iteration );
function __empty( $a, $b, $c ) {
}
function __small( $a, $b, $c ) {
$a = $b + $c;
}
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = __empty( 1, 2, 3 );
}
$first = clock( 'empty function' );
$i = $iteration;
while( --$i ) {
$result = __small( 1, 2, 3 );
}
$second = clock( 'small function' );
result( $first, $second, $iteration );
/**
* is_null function vs. === null statement
*/
$iteration = 1000000;
start( 'is_null', '=== null', null, $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = is_null($i);
}
$first = clock( 'is_null' );
$i = $iteration;
while( --$i ) {
$result = $i===null;
}
$second = clock( '=== null' );
result( $first, $second, $iteration );
/**
* split() function vs. explode() function
*/
$iteration = 1000000;
start( 'split', 'explode', null, $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = split( 'e', $shortString );
}
$first = clock( 'split' );
$i = $iteration;
while( --$i ) {
$result = explode( 'e', $shortString );
}
$second = clock( 'explode' );
result( $first, $second, $iteration );
/**
* split() function vs. preg_split() function
*/
$iteration = 100000;
start( 'split', 'explode', null, $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = split( '[last]{2,}', $shortString );
}
$first = clock( 'split' );
$i = $iteration;
while( --$i ) {
$result = preg_split( '/[last]{2,}/', $shortString );
}
$second = clock( 'preg_split' );
result( $first, $second, $iteration );
/**
* is_a() function vs. instanceof construct
*/
$iteration = 1000000;
start( 'is_a', 'instanceof', null, $iteration );
$a = new stdClass();
$b = new TQObject();
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
if( is_a( $a, 'stdClass') );
}
$first = clock( 'is_a' );
$i = $iteration;
while( --$i ) {
if( $a instanceof stdClass );
}
$second = clock( 'instanceof' );
result( $first, $second, $iteration );
/**
* ereg_replace() function vs. preg_replace() function
*/
$iteration = 100;
start( 'ereg_replace', 'preg_replace', 'run on a string with 6818 chars', $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = ereg_replace( '[last]{2,}', '#', $longString );
}
$first = clock( 'ereg_replace' );
$i = $iteration;
while( --$i ) {
$result = preg_replace( '/[last]{2,}/', '#', $longString );
}
$second = clock( 'preg_replace' );
result( $first, $second, $iteration );
/**
* ereg_replace() function vs. preg_replace() function
*/
$iteration = 1000;
start( 'ereg_replace', 'preg_replace', 'run on a string with 681 chars', $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = ereg_replace( '[last]{2,}', '#', $mediumString );
}
$first = clock( 'ereg_replace' );
$i = $iteration;
while( --$i ) {
$result = preg_replace( '/[last]{2,}/', '#', $mediumString );
}
$second = clock( 'preg_replace' );
result( $first, $second, $iteration );
/**
* preg_match() function vs. str_replace() function
*/
$iteration = 10000;
start( 'ereg_replace', 'str_replace', 'run on a string with 681 chars', $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = ereg_replace( 'is', '#', $mediumString );
}
$first = clock( 'ereg_replace' );
$i = $iteration;
while( --$i ) {
$result = str_replace( 'is', '#', $mediumString );
}
$second = clock( 'str_replace' );
result( $first, $second, $iteration );
/**
* date() function vs. DateTime object
*/
$iteration = 100000;
start( 'date', 'DateTime', 'DateTime has been instanciated upfront loop!', $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = date( 'Y-m-d H:i:s' );
}
$first = clock( 'date' );
$i = $iteration;
while( --$i ) {
$result = $dateTimeNow->format( 'Y-m-d H:i:s' );
}
$second = clock( 'DateTime' );
result( $first, $second, $iteration );
/**
* if statement vs. ternary
*/
$iteration = 1000000;
start( 'if', 'ternary', null, $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
if( $i > 0 ) {
$result = 5;
} else {
$result = 4;
}
}
$first = clock( 'if' );
$i = $iteration;
while( --$i ) {
$result = $i > 0 ? 5 : 4;
}
$second = clock( 'ternary' );
result( $first, $second, $iteration );
/**
* if statement vs. ternary
*/
$iteration = 1000;
start( 'serialize', 'json_encode', null, $iteration );
clock( 'start', false, false );
$i = $iteration;
while( --$i ) {
$result = serialize($largeArray);
}
$first = clock( 'serialize' );
$i = $iteration;
while( --$i ) {
$result = json_encode($largeArray);
}
$second = clock( 'json_encode' );
result( $first, $second, $iteration );
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 8.3.6 0.004 0.018 18.56 8.3.5 0.013 0.007 22.11 8.3.4 0.009 0.006 19.35 8.3.3 0.006 0.009 19.07 8.3.2 0.010 0.010 19.23 8.3.1 0.004 0.004 20.70 8.3.0 0.006 0.006 18.00 8.2.18 0.012 0.004 18.66 8.2.17 0.015 0.003 22.96 8.2.16 0.003 0.010 22.13 8.2.15 0.006 0.003 24.18 8.2.14 0.008 0.000 24.66 8.2.13 0.003 0.005 26.16 8.2.12 0.004 0.004 19.89 8.2.11 0.010 0.000 21.00 8.2.10 0.000 0.012 18.09 8.2.9 0.006 0.003 19.66 8.2.8 0.002 0.009 18.29 8.2.7 0.003 0.006 18.00 8.2.6 0.005 0.005 18.18 8.2.5 0.003 0.005 18.30 8.2.4 0.004 0.004 18.59 8.2.3 0.000 0.008 19.89 8.2.2 0.004 0.004 18.19 8.2.1 0.003 0.005 18.14 8.2.0 0.000 0.008 18.17 8.1.28 0.012 0.003 25.92 8.1.27 0.000 0.008 23.99 8.1.26 0.005 0.003 26.35 8.1.25 0.008 0.000 28.09 8.1.24 0.008 0.003 21.18 8.1.23 0.006 0.006 21.22 8.1.22 0.004 0.004 18.77 8.1.21 0.008 0.000 19.09 8.1.20 0.003 0.007 17.98 8.1.19 0.003 0.006 18.03 8.1.18 0.004 0.004 18.10 8.1.17 0.008 0.000 19.18 8.1.16 0.003 0.006 19.19 8.1.15 0.008 0.000 19.08 8.1.14 0.000 0.008 17.89 8.1.13 0.007 0.000 18.18 8.1.12 0.000 0.008 17.79 8.1.11 0.000 0.009 17.88 8.1.10 0.000 0.008 17.79 8.1.9 0.004 0.004 17.80 8.1.8 0.000 0.007 17.91 8.1.7 0.000 0.008 17.76 8.1.6 0.005 0.005 17.96 8.1.5 0.009 0.000 17.86 8.1.4 0.000 0.008 17.84 8.1.3 0.004 0.004 18.01 8.1.2 0.005 0.005 18.02 8.1.1 0.005 0.003 17.99 8.1.0 0.004 0.004 17.82 8.0.30 0.008 0.000 20.23 8.0.29 0.003 0.006 17.13 8.0.28 0.004 0.004 18.74 8.0.27 0.008 0.000 17.59 8.0.26 0.000 0.007 17.26 8.0.25 0.008 0.000 17.50 8.0.24 0.008 0.005 17.33 8.0.23 0.006 0.003 17.29 8.0.22 0.003 0.005 17.31 8.0.21 0.000 0.007 17.25 8.0.20 0.000 0.007 17.45 8.0.19 0.004 0.004 17.42 8.0.18 0.003 0.006 17.38 8.0.17 0.000 0.008 17.29 8.0.16 0.006 0.003 17.26 8.0.15 0.006 0.003 17.17 8.0.14 0.013 0.000 17.35 8.0.13 0.003 0.006 13.84 8.0.12 0.005 0.005 15.54 8.0.11 0.008 0.004 15.53 8.0.10 0.007 0.005 15.60 8.0.9 0.007 0.004 15.64 8.0.8 0.005 0.012 15.53 8.0.7 0.010 0.002 15.63 8.0.6 0.005 0.006 15.55 8.0.5 0.011 0.000 15.55 8.0.3 0.008 0.011 16.26 8.0.2 0.006 0.012 16.33 8.0.1 0.006 0.006 15.69 8.0.0 0.011 0.005 16.17 7.4.33 0.006 0.000 14.90 7.4.32 0.004 0.004 16.91 7.4.30 0.003 0.003 16.97 7.4.29 0.004 0.004 16.72 7.4.28 0.003 0.006 16.96 7.4.27 0.004 0.004 16.86 7.4.26 0.000 0.010 13.65 7.4.25 0.002 0.008 15.30 7.4.24 0.008 0.004 15.27 7.4.23 0.006 0.006 15.31 7.4.22 0.018 0.003 15.35 7.4.21 0.009 0.008 16.24 7.4.20 0.004 0.006 15.28 7.4.19 0.006 0.005 15.21 7.4.18 0.004 0.004 13.73 7.4.16 0.006 0.006 15.19 7.4.15 0.006 0.007 15.55 7.4.14 0.007 0.010 16.40 7.4.13 0.010 0.007 15.87 7.4.12 0.011 0.007 15.73 7.4.11 0.008 0.008 15.32 7.4.10 0.009 0.007 15.32 7.4.9 0.007 0.009 15.29 7.4.8 0.008 0.008 16.31 7.4.7 0.013 0.002 15.23 7.4.6 0.013 0.006 15.29 7.4.5 0.005 0.004 15.24 7.4.4 0.005 0.011 17.86 7.4.3 0.012 0.004 15.16 7.4.2 0.006 0.003 13.63 7.4.1 0.009 0.000 13.55 7.4.0 0.008 0.001 14.47 7.3.33 0.003 0.003 13.92 7.3.32 0.003 0.005 13.51 7.3.31 0.004 0.004 15.24 7.3.30 0.006 0.004 15.19 7.3.29 0.006 0.007 15.29 7.3.28 0.010 0.008 16.07 7.3.27 0.012 0.005 15.61 7.3.26 0.011 0.007 16.77 7.3.25 0.012 0.008 15.76 7.3.24 0.009 0.007 15.26 7.3.23 0.010 0.008 15.47 7.3.22 0.007 0.003 13.78 7.3.21 0.009 0.004 15.41 7.3.20 0.003 0.011 16.52 7.3.19 0.011 0.008 15.21 7.3.18 0.009 0.008 15.21 7.3.17 0.009 0.008 15.29 7.3.16 0.008 0.007 15.27 7.3.15 0.009 0.000 13.62 7.3.14 0.000 0.008 13.81 7.3.13 0.007 0.000 13.59 7.3.12 0.002 0.011 14.44 7.3.11 0.004 0.004 13.46 7.3.10 0.013 0.000 13.72 7.3.9 0.000 0.009 13.96 7.3.8 0.009 0.000 13.70 7.3.7 0.004 0.004 13.65 7.3.6 0.003 0.006 13.87 7.3.5 0.008 0.000 13.63 7.3.4 0.007 0.000 13.82 7.3.3 0.008 0.000 13.83 7.3.2 0.000 0.007 15.43 7.3.1 0.003 0.003 15.20 7.3.0 0.000 0.008 15.24 7.2.34 0.013 0.003 13.87 7.2.33 0.015 0.003 15.45 7.2.32 0.009 0.007 15.48 7.2.31 0.013 0.008 15.39 7.2.30 0.012 0.005 15.49 7.2.29 0.009 0.007 15.35 7.2.28 0.003 0.006 13.87 7.2.27 0.014 0.000 13.86 7.2.26 0.011 0.004 13.63 7.2.25 0.012 0.004 13.81 7.2.24 0.008 0.008 13.94 7.2.23 0.008 0.005 13.93 7.2.22 0.006 0.006 13.70 7.2.21 0.006 0.009 13.67 7.2.20 0.004 0.004 14.06 7.2.19 0.004 0.004 13.86 7.2.18 0.000 0.007 14.07 7.2.17 0.008 0.000 13.86 7.2.16 0.005 0.003 13.87 7.2.15 0.000 0.008 15.38 7.2.14 0.004 0.005 15.54 7.2.13 0.004 0.004 15.62 7.2.12 0.010 0.005 15.62 7.2.11 0.013 0.000 15.68 7.2.10 0.013 0.000 15.70 7.2.9 0.014 0.000 15.44 7.2.8 0.010 0.003 15.39 7.2.7 0.004 0.009 15.44 7.2.6 0.010 0.005 16.25 7.2.5 0.003 0.006 15.42 7.2.4 0.003 0.006 15.59 7.2.3 0.004 0.004 15.41 7.2.2 0.007 0.000 15.44 7.2.1 0.004 0.004 15.48 7.2.0 0.005 0.007 17.64 7.1.33 0.002 0.004 14.46 7.1.32 0.007 0.000 14.52 7.1.31 0.004 0.008 14.51 7.1.30 0.008 0.005 14.30 7.1.29 0.008 0.005 14.38 7.1.28 0.008 0.005 14.55 7.1.27 0.005 0.008 14.32 7.1.26 0.011 0.002 14.35 7.1.25 0.009 0.003 14.41 7.1.24 0.004 0.005 14.46 7.1.23 0.003 0.003 14.48 7.1.22 0.000 0.007 14.59 7.1.21 0.000 0.006 14.43 7.1.20 0.003 0.006 15.15 7.1.19 0.006 0.003 14.42 7.1.18 0.000 0.007 14.32 7.1.17 0.007 0.000 14.25 7.1.16 0.007 0.000 14.49 7.1.15 0.013 0.000 14.49 7.1.14 0.010 0.003 14.32 7.1.13 0.010 0.003 14.45 7.1.12 0.008 0.004 14.27 7.1.11 0.000 0.009 14.31 7.1.10 0.030 0.010 15.33 7.1.9 0.011 0.003 14.48 7.1.8 0.006 0.003 14.36 7.1.7 0.003 0.007 15.87 7.1.6 0.004 0.013 16.85 7.1.5 0.010 0.009 15.70 7.1.4 0.015 0.000 14.49 7.1.3 0.010 0.004 14.35 7.1.2 0.010 0.005 14.45 7.1.1 0.012 0.003 14.50 7.1.0 0.006 0.038 18.49 7.0.33 0.011 0.004 14.29 7.0.32 0.010 0.004 14.29 7.0.31 0.011 0.003 14.27 7.0.30 0.011 0.004 14.17 7.0.29 0.014 0.000 14.08 7.0.28 0.012 0.004 14.17 7.0.27 0.010 0.006 14.33 7.0.26 0.011 0.003 14.29 7.0.25 0.010 0.006 14.43 7.0.24 0.009 0.006 14.56 7.0.23 0.012 0.003 14.58 7.0.22 0.010 0.005 14.37 7.0.21 0.009 0.006 14.51 7.0.20 0.005 0.006 15.48 7.0.19 0.011 0.002 14.46 7.0.18 0.010 0.003 14.49 7.0.17 0.011 0.004 14.60 7.0.16 0.011 0.005 14.16 7.0.15 0.011 0.003 14.33 7.0.14 0.010 0.037 18.16 7.0.13 0.007 0.006 14.27 7.0.12 0.012 0.004 14.26 7.0.11 0.012 0.004 14.39 7.0.10 0.008 0.044 17.31 7.0.9 0.014 0.037 17.19 7.0.8 0.025 0.037 17.11 7.0.7 0.022 0.047 17.28 7.0.6 0.025 0.041 17.34 7.0.5 0.025 0.035 17.40 7.0.4 0.008 0.043 17.29 7.0.3 0.014 0.038 17.23 7.0.2 0.008 0.035 17.20 7.0.1 0.010 0.020 17.16 7.0.0 0.009 0.045 17.22 5.6.40 0.011 0.004 13.23 5.6.39 0.009 0.005 12.98 5.6.38 0.010 0.005 13.05 5.6.37 0.014 0.002 13.13 5.6.36 0.011 0.004 12.98 5.6.35 0.006 0.009 13.09 5.6.34 0.004 0.012 13.16 5.6.33 0.011 0.005 13.12 5.6.32 0.011 0.005 13.20 5.6.31 0.008 0.008 13.30 5.6.30 0.014 0.003 12.93 5.6.29 0.007 0.007 13.23 5.6.28 0.006 0.041 17.09 5.6.27 0.011 0.004 13.05 5.6.26 0.011 0.004 13.05 5.6.25 0.008 0.042 17.07 5.6.24 0.011 0.045 17.10 5.6.23 0.009 0.042 17.10 5.6.22 0.012 0.041 17.07 5.6.21 0.013 0.041 17.11 5.6.20 0.011 0.044 17.32 5.6.19 0.012 0.023 17.45 5.6.18 0.007 0.045 17.36 5.6.17 0.010 0.042 17.28 5.6.16 0.007 0.043 17.33 5.6.15 0.007 0.046 17.29 5.6.14 0.010 0.028 17.35 5.6.13 0.005 0.044 17.37 5.6.12 0.010 0.043 17.34 5.6.11 0.010 0.029 17.35 5.6.10 0.009 0.044 17.36 5.6.9 0.011 0.042 17.31 5.6.8 0.012 0.037 16.87 5.6.7 0.003 0.044 16.98 5.6.6 0.010 0.044 16.91 5.6.5 0.012 0.024 16.98 5.6.4 0.010 0.043 16.92 5.6.3 0.007 0.043 16.97 5.6.2 0.010 0.042 16.92 5.6.1 0.007 0.046 16.97 5.6.0 0.012 0.037 16.90 5.5.38 0.011 0.037 17.10 5.5.37 0.005 0.046 17.09 5.5.36 0.013 0.039 16.96 5.5.35 0.006 0.044 16.95 5.5.34 0.007 0.043 17.24 5.5.33 0.005 0.043 17.17 5.5.32 0.010 0.040 17.16 5.5.31 0.003 0.047 17.15 5.5.30 0.005 0.042 17.07 5.5.29 0.009 0.028 17.19 5.5.28 0.006 0.047 17.14 5.5.27 0.009 0.043 17.13 5.5.26 0.010 0.044 17.06 5.5.25 0.017 0.038 17.08 5.5.24 0.006 0.043 16.88 5.5.23 0.007 0.028 16.87 5.5.22 0.007 0.036 16.86 5.5.21 0.006 0.038 17.02 5.5.20 0.012 0.038 16.86 5.5.19 0.008 0.042 16.71 5.5.18 0.007 0.042 16.91 5.5.17 0.007 0.007 13.09 5.5.16 0.010 0.042 16.80 5.5.15 0.006 0.029 16.76 5.5.14 0.008 0.038 16.79 5.5.13 0.012 0.038 16.80 5.5.12 0.002 0.048 16.72 5.5.11 0.005 0.045 16.57 5.5.10 0.003 0.041 16.88 5.5.9 0.006 0.026 16.83 5.5.8 0.006 0.022 16.88 5.5.7 0.006 0.035 16.92 5.5.6 0.007 0.027 16.66 5.5.5 0.012 0.017 16.71 5.5.4 0.009 0.018 16.80 5.5.3 0.008 0.020 16.87 5.5.2 0.010 0.018 16.73 5.5.1 0.006 0.023 16.77 5.5.0 0.006 0.022 16.71 5.4.45 0.006 0.047 16.28 5.4.44 0.010 0.042 16.35 5.4.43 0.014 0.037 16.37 5.4.42 0.010 0.040 16.50 5.4.41 0.010 0.023 16.38 5.4.40 0.011 0.043 16.14 5.4.39 0.006 0.045 16.11 5.4.38 0.008 0.025 16.05 5.4.37 0.007 0.033 16.15 5.4.36 0.007 0.042 16.14 5.4.35 0.011 0.039 16.14 5.4.34 0.006 0.025 16.22 5.4.33 0.003 0.010 12.98 5.4.32 0.010 0.037 16.30 5.4.31 0.000 0.048 16.22 5.4.30 0.013 0.038 16.25 5.4.29 0.002 0.045 16.24 5.4.28 0.012 0.036 16.24 5.4.27 0.015 0.036 16.33 5.4.26 0.008 0.035 16.20 5.4.25 0.008 0.036 16.24 5.4.24 0.009 0.017 16.17 5.4.23 0.004 0.026 16.07 5.4.22 0.008 0.018 16.05 5.4.21 0.010 0.018 15.99 5.4.20 0.009 0.022 16.04 5.4.19 0.003 0.025 16.04 5.4.18 0.005 0.023 16.11 5.4.17 0.004 0.025 16.06 5.4.16 0.007 0.021 16.13 5.4.15 0.005 0.025 16.13 5.4.14 0.007 0.020 14.76 5.4.13 0.008 0.025 14.82 5.4.12 0.003 0.023 14.84 5.4.11 0.009 0.017 14.90 5.4.10 0.011 0.022 14.82 5.4.9 0.007 0.020 14.91 5.4.8 0.004 0.022 15.00 5.4.7 0.004 0.024 15.07 5.4.6 0.010 0.015 14.99 5.4.5 0.008 0.018 14.95 5.4.4 0.005 0.021 14.87 5.4.3 0.001 0.026 15.01 5.4.2 0.008 0.018 14.96 5.4.1 0.008 0.018 15.04 5.4.0 0.008 0.022 14.63 5.3.29 0.008 0.025 14.69 5.3.28 0.009 0.025 14.38 5.3.27 0.005 0.024 14.64 5.3.26 0.008 0.031 14.56 5.3.25 0.004 0.024 14.43 5.3.24 0.008 0.020 14.48 5.3.23 0.003 0.023 14.33 5.3.22 0.006 0.036 14.58 5.3.21 0.006 0.023 14.34 5.3.20 0.013 0.027 14.40 5.3.19 0.007 0.021 14.44 5.3.18 0.006 0.023 14.53 5.3.17 0.003 0.024 14.64 5.3.16 0.006 0.024 14.49 5.3.15 0.004 0.024 14.58 5.3.14 0.009 0.021 14.52 5.3.13 0.004 0.024 14.48 5.3.12 0.006 0.021 14.46 5.3.11 0.006 0.023 14.47 5.3.10 0.003 0.023 14.27 5.3.9 0.004 0.022 14.26 5.3.8 0.003 0.024 14.03 5.3.7 0.008 0.019 14.12 5.3.6 0.004 0.024 14.05 5.3.5 0.007 0.020 14.10 5.3.4 0.007 0.020 14.15 5.3.3 0.010 0.017 14.19 5.3.2 0.008 0.021 13.89 5.3.1 0.003 0.024 13.76 5.3.0 0.011 0.015 13.80
preferences:dark mode live preview
53.7 ms | 401 KiB | 5 Q