[pypy-svn] r30994 - in pypy/dist/pypy/translator/cli: . src

antocuni at codespeak.net antocuni at codespeak.net
Fri Aug 4 14:53:11 CEST 2006


Author: antocuni
Date: Fri Aug  4 14:53:06 2006
New Revision: 30994

Modified:
   pypy/dist/pypy/translator/cli/database.py
   pypy/dist/pypy/translator/cli/src/pypylib.cs
Log:
Preallocate constant Lists with the exact size when doing constant
initialization. The pypy startup time on snake has passed from 17.7 to
11.8 secs (!!).



Modified: pypy/dist/pypy/translator/cli/database.py
==============================================================================
--- pypy/dist/pypy/translator/cli/database.py	(original)
+++ pypy/dist/pypy/translator/cli/database.py	Fri Aug  4 14:53:06 2006
@@ -470,7 +470,8 @@
     def instantiate(self, ilasm):
         assert not self.is_null()
         class_name = self.get_type(False)
-        ilasm.new('instance void class %s::.ctor()' % class_name)
+        AbstractConst.load(self.db, ootype.Signed, len(self.value._list), ilasm)
+        ilasm.new('instance void class %s::.ctor(int32)' % class_name)
         self.db.const_count.inc('List')
         self.db.const_count.inc('List', self.value._TYPE._ITEMTYPE)
         self.db.const_count.inc('List', len(self.value._list))

Modified: pypy/dist/pypy/translator/cli/src/pypylib.cs
==============================================================================
--- pypy/dist/pypy/translator/cli/src/pypylib.cs	(original)
+++ pypy/dist/pypy/translator/cli/src/pypylib.cs	Fri Aug  4 14:53:06 2006
@@ -282,6 +282,10 @@
         {
         }
 
+        public List(int capacity): base(capacity)
+        {
+        }
+
         public override string ToString()
         {
             // TODO: use StringBuilder instead
@@ -341,6 +345,9 @@
     {
         int Count = 0;
 
+        public ListOfVoid() { }
+        public ListOfVoid(int capacity) { }
+
         public override string ToString()
         {
             // TODO: use StringBuilder instead



More information about the Pypy-commit mailing list