NetWare port of Python - not so hot pystone

Brad Clements bkc at murkworks.com
Mon Jan 3 16:34:15 EST 2000


Having completed an initial port of Python to NetWare, I've been testing 
it out to see how well it performs.

On a PII-233 with 128 meg ram I can run either NetWare 5.1, or 
Windows NT 4.0 SP3.

When running NT, Pystone 1.1 returns 3634

When running on NetWare in protected mode I get 2748 with 
setcheckinterval(<big number>), or 1628 using the default check interval

When running on NetWare in non-protected mode, I get 3086 with 
setcheckinterval(<big number>), or 2044 using the default check interval.

The NetWare version of python15.nlm was compiled using Pentium 
instructions and scheduling.

Because NetWare is a non-preemptive OS, the check interval also 
controls when Python15.nlm explicitely calls ThreadSwitch(). Setting 
the check interval to a higher number has a big impact.

--

Still, these numbers are rather crummy. What kinds of things in a CLIB 
could have a large impact on Python?

1. memory allocation routines
2. string manipulation
3. <other>???

I suspect that the memory allocation functions in clib aren't very good, 
and could be replaced with something better. Does anyone know of a 
free source of a very good dynamic memory allocator?

Perhaps there is a compile time option I'm missing here? I don't think 
my config.h has debugging or memory tracing enabled.

I'm using the Borland Compiler, if I used VC would that make a big 
impact too?

Suggestions welcome. Thanks

ps. Zope runs on NetWare too.


Brad Clements,                bkc at murkworks.com   (315)268-1000
http://www.murkworks.com                          (315)268-9812 Fax
netmeeting: ils://ils.murkworks.com               AOL-IM: BKClements




More information about the Python-list mailing list