indeyets / syck

swift yaml for ruby, python, perl, etc.

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