diff --git a/benchmark/addressbook.capnp.bytes.py b/benchmark/addressbook.capnp.bytes.py deleted file mode 100644 index 2f126e3..0000000 --- a/benchmark/addressbook.capnp.bytes.py +++ /dev/null @@ -1,54 +0,0 @@ -from __future__ import print_function -import os -import capnp - -this_dir = os.path.dirname(__file__) -addressbook = capnp.load(os.path.join(this_dir, 'addressbook.capnp')) - -print = lambda *x: x - - -def writeAddressBook(f): - 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_bytes = addressBook.to_bytes() - f.write(msg_bytes) - -def printAddressBook(msg_bytes): - addressBook = addressbook.AddressBook.from_bytes(msg_bytes) - - for person in addressBook.people: - print(person.name, ':', person.email) - for phone in person.phones: - print(phone.type, ':', phone.number) - print() - - -if __name__ == '__main__': - for i in range(10000): - f = open('example', 'w') - writeAddressBook(f) - - f = open('example', 'r') - printAddressBook(f.read()) - -os.remove('example') diff --git a/benchmark/addressbook.capnp.orphan.py b/benchmark/addressbook.capnp.orphan.py index ac71abd..cc2c8f5 100644 --- a/benchmark/addressbook.capnp.orphan.py +++ b/benchmark/addressbook.capnp.orphan.py @@ -8,10 +8,9 @@ addressbook = capnp.load(os.path.join(this_dir, 'addressbook.capnp')) print = lambda *x: x -def writeAddressBook(fd): - message = capnp.MallocMessageBuilder() - addressBook = message.initRoot(addressbook.AddressBook) - people = addressBook.initResizableList('people') +def writeAddressBook(): + addressBook = addressbook.AddressBook.new_message() + people = addressBook.init_resizable_list('people') alice = people.add() alice.id = 123 @@ -32,13 +31,11 @@ def writeAddressBook(fd): bobPhones[1].type = 'work' people.finish() + msg_bytes = addressBook.to_bytes() + return msg_bytes - capnp.writePackedMessageToFd(fd, message) - - -def printAddressBook(fd): - message = capnp.PackedFdMessageReader(f.fileno()) - addressBook = message.getRoot(addressbook.AddressBook) +def printAddressBook(msg_bytes): + addressBook = addressbook.AddressBook.from_bytes(msg_bytes) for person in addressBook.people: print(person.name, ':', person.email) @@ -49,10 +46,7 @@ def printAddressBook(fd): if __name__ == '__main__': for i in range(10000): - f = open('example', 'w') - writeAddressBook(f.fileno()) + msg_bytes = writeAddressBook() - f = open('example', 'r') - printAddressBook(f.fileno()) + printAddressBook(msg_bytes) -os.remove('example') diff --git a/benchmark/addressbook.capnp.py b/benchmark/addressbook.capnp.py index 8d0cdf3..b21975a 100644 --- a/benchmark/addressbook.capnp.py +++ b/benchmark/addressbook.capnp.py @@ -8,7 +8,7 @@ addressbook = capnp.load(os.path.join(this_dir, 'addressbook.capnp')) print = lambda *x: x -def writeAddressBook(f): +def writeAddressBook(): addressBook = addressbook.AddressBook.new_message() people = addressBook.init('people', 2) @@ -30,11 +30,11 @@ def writeAddressBook(f): bobPhones[1].number = "555-7654" bobPhones[1].type = 'work' - addressBook.write(f) + msg_bytes = addressBook.to_bytes() + return msg_bytes - -def printAddressBook(f): - addressBook = addressbook.AddressBook.read(f) +def printAddressBook(msg_bytes): + addressBook = addressbook.AddressBook.from_bytes(msg_bytes) for person in addressBook.people: print(person.name, ':', person.email) @@ -45,10 +45,7 @@ def printAddressBook(f): if __name__ == '__main__': for i in range(10000): - f = open('example', 'w') - writeAddressBook(f) + msg_bytes = writeAddressBook() - f = open('example', 'r') - printAddressBook(f) + printAddressBook(msg_bytes) -os.remove('example') diff --git a/benchmark/addressbook.proto.py b/benchmark/addressbook.proto.py index 7311a99..517b44c 100644 --- a/benchmark/addressbook.proto.py +++ b/benchmark/addressbook.proto.py @@ -5,7 +5,7 @@ import os print = lambda *x: x -def writeAddressBook(fd): +def writeAddressBook(): addressBook = addressbook.AddressBook() alice = addressBook.person.add() @@ -27,12 +27,12 @@ def writeAddressBook(fd): bobPhones[1].type = addressbook.Person.WORK message_string = addressBook.SerializeToString() - fd.write(message_string) + return message_string -def printAddressBook(fd): +def printAddressBook(message_string): addressBook = addressbook.AddressBook() - addressBook.ParseFromString(fd.read()) + addressBook.ParseFromString(message_string) for person in addressBook.person: print(person.name, ':', person.email) @@ -43,10 +43,7 @@ def printAddressBook(fd): if __name__ == '__main__': for i in range(10000): - f = open('example', 'w') - writeAddressBook(f) + message_string = writeAddressBook() - f = open('example', 'r') - printAddressBook(f) + printAddressBook(message_string) -os.remove('example')