From f12f826a85e29797511ad8ef600c736e9c2c2b44 Mon Sep 17 00:00:00 2001 From: Jason Paryani Date: Thu, 4 Sep 2014 14:20:47 -0700 Subject: [PATCH] Change addressbook benchmark around a bit --- benchmark/addressbook.capnp.py | 55 +++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/benchmark/addressbook.capnp.py b/benchmark/addressbook.capnp.py index b21975a..69417bd 100644 --- a/benchmark/addressbook.capnp.py +++ b/benchmark/addressbook.capnp.py @@ -2,12 +2,16 @@ from __future__ import print_function import os import capnp +try: + profile +except: + profile = lambda func: func this_dir = os.path.dirname(__file__) addressbook = capnp.load(os.path.join(this_dir, 'addressbook.capnp')) print = lambda *x: x - +@profile def writeAddressBook(): addressBook = addressbook.AddressBook.new_message() people = addressBook.init('people', 2) @@ -32,20 +36,57 @@ def writeAddressBook(): msg_bytes = addressBook.to_bytes() return msg_bytes - +@profile def printAddressBook(msg_bytes): addressBook = addressbook.AddressBook.from_bytes(msg_bytes) for person in addressBook.people: - print(person.name, ':', person.email) + person.name, person.email for phone in person.phones: - print(phone.type, ':', phone.number) - print() + phone.type, phone.number + +@profile +def writeAddressBookDict(): + addressBook = addressbook.AddressBook.new_message() + people = addressBook.init('people', 2) + + alice = people[0] + alice.id = 123 + alice.name = 'Alice' + alice.email = 'alice@example.com' + alicePhones = alice.init('phones', 1) + alicePhones[0].number = "555-1212" + alicePhones[0].type = 'mobile' + + bob = people[1] + bob.id = 456 + bob.name = 'Bob' + bob.email = 'bob@example.com' + bobPhones = bob.init('phones', 2) + bobPhones[0].number = "555-4567" + bobPhones[0].type = 'home' + bobPhones[1].number = "555-7654" + bobPhones[1].type = 'work' + + msg = addressBook.to_dict() + return msg +@profile +def printAddressBookDict(msg): + addressBook = addressbook.AddressBook.new_message(**msg) + + for person in addressBook.people: + person.name, person.email + for phone in person.phones: + phone.type, phone.number if __name__ == '__main__': + # for i in range(10000): + # msg_bytes = writeAddressBook() + + # printAddressBook(msg_bytes) for i in range(10000): - msg_bytes = writeAddressBook() + msg = writeAddressBookDict() - printAddressBook(msg_bytes) + printAddressBookDict(msg)