Your code !!
import time,TestClass
n1,n2,n3 = 250,250,250
z = TestClass.zeros(n1,n2,n3)
start = time.time()
TestClass.overloaded([z,z,z])
print 'time =',(time.time()-start)
Facts!!
- Jython is Java based (well, we already know that!)
n1,n2,n3 = 250,250,250 z = TestClass.zeros(n1,n2,n3), 250x250x250x32 bytes, 500000000 bytes 477 megabytes. 32 - float Java.TestClass.overloaded([z,z,z]), 4- ! , !!
!!
TestClass.overloaded([z,z,z]) x = TestClass.overloaded([z,z,z]). . 'x' it still fails!! ?!
""!!
, TestClass.overloaded([z,z,z]) 'x', python , , jython , . . :
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Arrays.java:3209)
at java.lang.String.<init>(String.java:215)
at java.lang.StringBuilder.toString(StringBuilder.java:430)
at org.python.core.PyList.list_toString(PyList.java:472)
at org.python.core.PyList.toString(PyList.java:450)
at org.python.core.PyArray.toString(PyArray.java:395)
at org.python.core.PyObject.__repr__(PyObject.java:174)
at org.python.core.PyList.list_toString(PyList.java:464)
at org.python.core.PyList.toString(PyList.java:450)
at org.python.core.PyArray.toString(PyArray.java:395)
at org.python.core.PyObject.__repr__(PyObject.java:174)
.. JVM !!!! ... JVM , 478 MB !! ( 478 MB 'z', 478 MB!!!), , , , JVM StringBuilder !!
, .
!
>>> n1,n2,n3 = 2,2,2
>>> z = TestClass.zeros(n1,n2,n3)
>>> x = TestClass.overloaded([z,z,z])
>>> x
Output:
array([[[F, [array([[F, [array([F, [array('f', [0.0, 0.0]), array('f', [0.0, 0.0
])]), array([F, [array('f', [0.0, 0.0]), array('f', [0.0, 0.0])])]), array([[F,
[array([F, [array('f', [0.0, 0.0]), array('f', [0.0, 0.0])]), array([F, [array('
f', [0.0, 0.0]), array('f', [0.0, 0.0])])]), array([[F, [array([F, [array('f', [
0.0, 0.0]), array('f', [0.0, 0.0])]), array([F, [array('f', [0.0, 0.0]), array('
f', [0.0, 0.0])])])])
. , 2x2x2x32 bytes !! , , 2's 20's.
, !!!
, jython [z,z,z], . . , , , . , , , . , , . , , x = TestClass.overloaded([z,z,z]), , 'x' Heap Exception!!
!