On Friday 18 February 2005 18:00, Hans-Peter Jansen wrote:

and here's a more detailed comparison from the two:

9.0:                               9.2:
sip version: 4.1.1                 sip version: 4.0.1
Qt version: 3.2.1                  Qt version: 3.3.3
PyQt version: 3.13                 PyQt version: 3.12
Python: 2.3                        Python: 2.3.4

Initial Values                     Initial Values
VmSize:     4928 kB                VmSize:     4276 kB
VmData:     1404 kB                VmData:      852 kB
VmRSS:      2772 kB                VmRSS:      2508 kB
VmLib:      2984 kB                VmLib:      2886 kB
Import qt                          Import qt
VmSize:    22464 kB    17536 kB    VmSize:    21652 kB    17376 kB
VmData:     1584 kB      180 kB    VmData:     1200 kB      348 kB
VmRSS:      9336 kB     6564 kB    VmRSS:      8252 kB     5744 kB
VmLib:     19552 kB    16568 kB    VmLib:     19190 kB    16304 kB
Create Application                 Create Application
VmSize:    60972 kB    38508 kB    VmSize:    23912 kB     2260 kB
VmData:     2692 kB     1108 kB    VmData:     2492 kB     1292 kB
VmRSS:     13656 kB     4320 kB    VmRSS:     11020 kB     2768 kB
VmLib:     21252 kB     1700 kB    VmLib:     19230 kB       40 kB
Create Pushbutton                  Create Pushbutton
VmSize:    60972 kB        0 kB    VmSize:    23904 kB       -8 kB
VmData:     2692 kB        0 kB    VmData:     2484 kB       -8 kB
VmRSS:     13824 kB      168 kB    VmRSS:     11188 kB      168 kB
VmLib:     21252 kB        0 kB    VmLib:     19230 kB        0 kB
Show Pushbutton                    Show Pushbutton
VmSize:    62964 kB     1992 kB    VmSize:    26356 kB     2452 kB
VmData:     4272 kB     1580 kB    VmData:     4476 kB     1992 kB
VmRSS:     15896 kB     2072 kB    VmRSS:     13836 kB     2648 kB
VmLib:     21640 kB      388 kB    VmLib:     19606 kB      376 kB
Connect Pushbutton signal          Connect Pushbutton signal
VmSize:    62964 kB        0 kB    VmSize:    26356 kB        0 kB
VmData:     4272 kB        0 kB    VmData:     4476 kB        0 kB
VmRSS:     15924 kB       28 kB    VmRSS:     13860 kB       24 kB
VmLib:     21640 kB        0 kB    VmLib:     19606 kB        0 kB
Enter Mainloop                     Enter Mainloop
VmSize:    63136 kB      172 kB    VmSize:    26356 kB        0 kB
VmData:     4404 kB      132 kB    VmData:     4476 kB        0 kB
VmRSS:     16260 kB      336 kB    VmRSS:     14196 kB      336 kB
VmLib:     21676 kB       36 kB    VmLib:     19606 kB        0 kB
Mainloop finished                  Mainloop finished
VmSize:    63136 kB        0 kB    VmSize:    26356 kB        0 kB
VmData:     4404 kB        0 kB    VmData:     4476 kB        0 kB
VmRSS:     16260 kB        0 kB    VmRSS:     14196 kB        0 kB
VmLib:     21676 kB        0 kB    VmLib:     19606 kB        0 kB
Delete Pushbutton                  Delete Pushbutton
VmSize:    63128 kB       -8 kB    VmSize:    26356 kB        0 kB
VmData:     4396 kB       -8 kB    VmData:     4476 kB        0 kB
VmRSS:     16260 kB        0 kB    VmRSS:     14200 kB        4 kB
VmLib:     21676 kB        0 kB    VmLib:     19606 kB        0 kB
Delete Application                 Delete Application
VmSize:    38132 kB   -24996 kB    VmSize:    25688 kB     -668 kB
VmData:     4396 kB        0 kB    VmData:     4268 kB     -208 kB
VmRSS:     16028 kB     -232 kB    VmRSS:     13848 kB     -352 kB
VmLib:     21288 kB     -388 kB    VmLib:     19230 kB     -376 kB

Funny are the tremendous movements in QApplication ctor/dtor on the 
left. 

Pete
#! /usr/bin/env python

import sys, os

class ProcMem:
    def __init__(self):
        self.pid = os.getpid()
        self.initial = self.getValues()
        self.showValues(self.initial)

    def getValues(self):
        val = {}
        fp = open("/proc/%s/status" % self.pid, "r")
        for l in fp:
            if l.startswith("Vm"):
                k, v = l.split()[:2]
                if k in ("VmData:";, "VmLib:", "VmRSS:", "VmSize:"):
                    val[k] = int(v)
        return val

    def showValues(self, val, val2 = None):
        for k in "VmSize:", "VmData:";, "VmRSS:", "VmLib:":
            if val2:
                print "%-7s %8s kB %8s kB" % (k, val[k], val[k]-val2[k])
            else:
                print "%-7s %8s kB" % (k, val[k])

    def diffValues(self):
        val = self.getValues()
        self.showValues(val, self.initial)
        self.initial = val

print "Initial Values"
pm = ProcMem()

print "Import qt"
import qt
pm.diffValues()

print "Create Application"
a = qt.QApplication(sys.argv)
pm.diffValues()

print "Create Pushbutton"
b = qt.QPushButton("&Hello World", None)
a.setMainWidget(b)
pm.diffValues()

print "Show Pushbutton"
b.show()
pm.diffValues()

print "Connect Pushbutton signal"
a.connect(b, qt.SIGNAL("clicked()"), qt.qApp.quit)
pm.diffValues()

print "Enter Mainloop"
a.exec_loop()
pm.diffValues()

print "Mainloop finished"
pm.diffValues()

print "Delete Pushbutton"
del b
pm.diffValues()

print "Delete Application"
del a
pm.diffValues()

_______________________________________________
PyKDE mailing list    PyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde

Reply via email to