[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