Re: Wierd ass code...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Gonzalo Monzón escribió:

Attached results and code. (tested on PHP 4.3.4)
--------------------------------------------------------------

Testing bidimensional and single dimension array manipulation

Fill style A, bidimensional array: 2,1603
Iteration style A, bidimensional array: 9,9071
Total time style A: 12,0681

Fill style B, single-dimension array: 4,2362
Iteration style B, single-dimension array: 1,5452
Total time style B: 5,7821

Fill style A, bidimensional array: 2,3548
Iteration style A, bidimensional array: 13,1935
Total time style A: 15,5489

Fill style B, single-dimension array: 4,2891
Iteration style B, single-dimension array: 1,5413
Total time style B: 5,8312

Fill style A, bidimensional array: 2,36
Iteration style A, bidimensional array: 17,8439
Total time style A: 20,2046

Fill style B, single-dimension array: 4,2982
Iteration style B, single-dimension array: 1,5554
Total time style B: 5,8544

Fill style A, bidimensional array: 2,3756
Iteration style A, bidimensional array: 17,8817
Total time style A: 20,2579

Fill style B, single-dimension array: 4,3203
Iteration style B, single-dimension array: 1,5332
Total time style B: 5,8543

Fill style A, bidimensional array: 2,3554
Iteration style A, bidimensional array: 19,2986
Total time style A: 21,6547

Fill style B, single-dimension array: 4,3013
Iteration style B, single-dimension array: 1,5508
Total time style B: 5,8528

I wonder how does PHP4 performs in this test, comparing with Python when using dictionaries. Python wins! Please, don't flame this as I don't want to mean PHP is bad, they are different languages for different approaches. But these are the results for this test. Interesting...

Best case A, bi-dimensional:   PHP 12,0681   Python: 1,9930   (n/6,3)
Best case B, single-dimension:   PHP 5,7821   Python: 3,6950   (n/1,56)

Python test, results & code (tested on Python 2.4.3):
-------------------------------------------------------------------

Fill style A, bidimensional array:  1.742000
Iteration style A, bidimensional array:  0.251000
Total time style A: 1.993000

Fill style B, single-dimension array:  3.414000
Iteration style B, single-dimension array:  0.271000
Total time style B: 3.695000

Fill style A, bidimensional array:  2.073000
Iteration style A, bidimensional array:  0.240000
Total time style A: 2.313000

Fill style B, single-dimension array:  3.846000
Iteration style B, single-dimension array:  0.310000
Total time style B: 4.166000

Fill style A, bidimensional array:  2.133000
Iteration style A, bidimensional array:  0.251000
Total time style A: 2.384000

Fill style B, single-dimension array:  3.735000
Iteration style B, single-dimension array:  0.350000
Total time style B: 4.085000

Fill style A, bidimensional array:  2.144000
Iteration style A, bidimensional array:  0.240000
Total time style A: 2.384000

Fill style B, single-dimension array:  3.795000
Iteration style B, single-dimension array:  0.381000
Total time style B: 4.176000
-----------------------------------------------------------------

import time

def TimeMS():
   return time.time()*1000

def TestA():
   global gTestA
   gTestA = {}
   for a in xrange(0,999):
       gTestA[a] = {}
       for b in xrange(0,999):
           gTestA[a][b] = "%s%s" % (a,b)

def TestB():
   global gTestB
   gTestB = {}
   for a in xrange(0,999):
       for b in xrange(0,999):
           gTestB["%s%s" % (a,b)] = "%s%s" % (a,b)

def TestA2():
   global gTestA
   for a in gTestA:
       for b in gTestA[a]:
           c = gTestA[a][b]

def TestB2():
   global gTestB
   for a in gTestB:
       c = gTestB[a]

# TEST: for n in xrange(1,5):
   gTestA = {}
   print "\nFill style A, bidimensional array: ",
   startt = TimeMS()
   TestA()
   print "%f" % ((TimeMS() - startt)/1000)

   print "Iteration style A, bidimensional array: ",
   startt2 = TimeMS()
   TestA2()
   print "%f" % ((TimeMS() - startt2)/1000)
   print "Total time style A: %f" % ((TimeMS() - startt)/1000)

   gTestB = {}
   print "\nFill style B, single-dimension array: ",
   startt = TimeMS()
   TestB()
   print "%f" % ((TimeMS() - startt)/1000)

   print "Iteration style B, single-dimension array: ",
   startt2 = TimeMS()
   TestB2()
   print "%f" % ((TimeMS() - startt2)/1000)
   print "Total time style B: %f" % ((TimeMS() - startt)/1000)

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux