| 1 | <?php |
|---|
| 2 | if(!extension_loaded('syck')) { |
|---|
| 3 | dl('syck.so'); |
|---|
| 4 | } |
|---|
| 5 | $module = 'syck'; |
|---|
| 6 | $functions = get_extension_funcs($module); |
|---|
| 7 | echo "Functions available in the test extension:<br>\n"; |
|---|
| 8 | foreach($functions as $func) { |
|---|
| 9 | echo $func."<br>\n"; |
|---|
| 10 | } |
|---|
| 11 | echo "<br>\n"; |
|---|
| 12 | echo "Testing load: \n"; |
|---|
| 13 | $doc =<<<YAML |
|---|
| 14 | - |
|---|
| 15 | a: 1 |
|---|
| 16 | b: 2 |
|---|
| 17 | c: 3 |
|---|
| 18 | d: TRUE |
|---|
| 19 | e: ~ |
|---|
| 20 | f: test_me |
|---|
| 21 | g: |
|---|
| 22 | test: also |
|---|
| 23 | h: 0xFF |
|---|
| 24 | i: 012 |
|---|
| 25 | YAML; |
|---|
| 26 | |
|---|
| 27 | $iter = 1000; |
|---|
| 28 | |
|---|
| 29 | echo "DOC #1 = $iter x " . strlen( $doc ) . "\n"; |
|---|
| 30 | $syck_start = microtime(); |
|---|
| 31 | foreach( range( 0, $iter ) as $i ) |
|---|
| 32 | { |
|---|
| 33 | $test_obj = syck_load( $doc ); |
|---|
| 34 | } |
|---|
| 35 | $syck_stop = microtime(); |
|---|
| 36 | |
|---|
| 37 | $test_str = serialize( $test_obj ); |
|---|
| 38 | $unser_start = microtime(); |
|---|
| 39 | foreach( range( 0, $iter ) as $i ) |
|---|
| 40 | { |
|---|
| 41 | $test_obj = unserialize( $test_str ); |
|---|
| 42 | } |
|---|
| 43 | $unser_stop = microtime(); |
|---|
| 44 | |
|---|
| 45 | $doc2 = ""; |
|---|
| 46 | foreach( range( 0, $iter ) as $i ) |
|---|
| 47 | { |
|---|
| 48 | $doc2 .= $doc . "\n"; |
|---|
| 49 | } |
|---|
| 50 | echo "DOC #2 = 1 x " . strlen( $doc2 ) . "\n"; |
|---|
| 51 | $syck2_start = microtime(); |
|---|
| 52 | $test_obj = syck_load( $doc2 ); |
|---|
| 53 | $syck2_stop = microtime(); |
|---|
| 54 | |
|---|
| 55 | $test_str = serialize( $test_obj ); |
|---|
| 56 | $unser2_start = microtime(); |
|---|
| 57 | $test_obj = unserialize( $test_str ); |
|---|
| 58 | $unser2_stop = microtime(); |
|---|
| 59 | |
|---|
| 60 | |
|---|
| 61 | function elapsed( $start, $stop ) |
|---|
| 62 | { |
|---|
| 63 | $start_mt = explode( " ", $start ); |
|---|
| 64 | $stop_mt = explode( " ", $stop ); |
|---|
| 65 | $start_total = doubleval( $start_mt[0] ) + $start_mt[1]; |
|---|
| 66 | $stop_total = doubleval( $stop_mt[0] ) + $stop_mt[1]; |
|---|
| 67 | return sprintf( "%0.6f", $stop_total - $start_total ); |
|---|
| 68 | } |
|---|
| 69 | |
|---|
| 70 | echo "syck: " . elapsed( $syck_start, $syck_stop ) . " " . elapsed( $syck2_start, $syck2_stop ) . "\n"; |
|---|
| 71 | echo "php: " . elapsed( $unser_start, $unser_stop ) . " " . elapsed( $unser2_start, $unser2_stop ) . "\n"; |
|---|
| 72 | |
|---|
| 73 | ?> |
|---|