WordPress.org

Make WordPress Core

Ticket #17522: string-test.php

File string-test.php, 1.6 KB (added by niallkennedy, 4 years ago)

single vs. double quoted string tests based on options use

Line 
1<?php
2// gc_enable();
3
4/**
5 * Test single quotes
6 * @return float microtime
7 */
8function single_quotes() {
9        $blog_id = 12345;
10        $key = 'blog_charset';
11        $i = 0;
12        $tmp = array();
13        // gc_collect_cycles();
14
15        $start = microtime( true );
16        while ( $i < 10000 ) {
17                $tmp[] = $blog_id . '-' . $key . '-blog_option';
18                ++$i;
19        }
20
21        return ( microtime( true ) - $start );
22}
23
24/**
25 * Test double quotes
26 * @return float microtime
27 */
28function double_quotes() {
29        $blog_id = 12345;
30        $key = "blog_charset";
31        $i = 0;
32        $tmp = array();
33        // gc_collect_cycles();
34
35        $start = microtime( true );
36        while ( $i < 10000 ) {
37                $tmp[] = $blog_id . "-" . $key . "-blog_option";
38                ++$i;
39        }
40
41        return ( microtime( true ) - $start );
42}
43
44$single = array();
45$double = array();
46$i = 0;
47
48while ( $i < 1000 ) {
49        // try to randomize any GC bias
50        if ( ($i % 2) === 1 ) {
51                $double[] = double_quotes();
52                $single[] = single_quotes();
53        } else {
54                $single[] = single_quotes();
55                $double[] = double_quotes();
56        }
57        ++$i;
58}
59unset( $i );
60
61echo 'Total iterations: ' . count( $single ) . PHP_EOL . PHP_EOL;
62
63$total_single = array_sum( $single );
64echo "Total single: $total_single" . PHP_EOL;
65
66$total_double = array_sum( $double );
67echo "Total double: $total_double" . PHP_EOL;
68if ( $total_single < $total_double )
69        echo 'Single-quoted string solution completed ' . ( $total_double - $total_single ) . ' microseconds faster.' . PHP_EOL;
70else
71        echo 'Double-quoted string solution completed ' . ( $total_single - $total_double ) . ' microseconds faster.' . PHP_EOL;
72
73echo PHP_EOL;
74
75echo 'Average single: ' . ( $total_single / count( $single ) ) . PHP_EOL;
76echo 'Average double: ' . ( $total_double / count( $double ) ) . PHP_EOL;
77
78?>