On Tue, Jan 14, 2014 at 01:23:51PM +0800, Jonathan Ballet wrote:
> Current performances
> --------------------
> 
> I made a small test case to reproduce the problem (attached to this
> email), and here are the results I've got:

Of course, I forgot it. It's attached to this email now...

 Jonathan
import time

import sys
if '-2' in sys.argv:
    import pygtk
    import gobject as GObject
    import gtk as Gtk
else:
    from gi.repository import Gtk, GObject


class Timer:
    def __init__(self):
        self.t = time.time()

    def mark(self, message):
        t = time.time()
        print("{}: {}".format(message, t - self.t))
        self.t = t

t = Timer()

class Song(GObject.GObject):
    def __init__(self):
        super(Song, self).__init__()
        self.id = 0
        self.track = 15
        self.title = "title"
        self.artist = "Foo bar"
        self.year = 1995
        self.album = "Plop plip"
        self.file = "foo.ogg"

    def __getitem__(self, key):
        return getattr(self, key)

    def get(self, key, default):
        return getattr(self, key, default)


songs = [Song() for i in range(10000)]
t.mark("Create")


columns_format = ['%N', '%T', '%A', '%Y - %B - %N']
current_columns = [str] * len(columns_format)


def parse(part, song, unused=None):
    if part == '%N':
        return str(song.track)
    elif part == '%T':
        return song.title
    elif part == '%A':
        return song.album
    else:
        return "%d - %s - %d" % (song.year, song.album, song.track)


l = Gtk.ListStore(*(current_columns))
for song in songs:
    items = [parse(part, song, True) for part in columns_format]
    l.append(items)
t.mark("Append")
_______________________________________________
python-hackers-list mailing list
python-hackers-list@gnome.org
https://mail.gnome.org/mailman/listinfo/python-hackers-list

Reply via email to