Opened 9 years ago

Closed 8 years ago

#611 closed defect (fixed)

Session format: compare performance of msgpack vs. pickle

Reported by: Scooter Morris Owned by: Greg Couch
Priority: critical Milestone: Alpha2
Component: Input/Output Version:
Keywords: Cc:
Blocked By: Blocking: 609, 609
Notify when closed: Platform: all
Project: ChimeraX

Description

Once we have a msgpack session implementation, we need to compare the performance of it vs. our current approach.

Change History (5)

comment:1 by Scooter Morris, 9 years ago

Blocking: 609609, 609

comment:2 by Eric Pettersen, 9 years ago

Component: UnassignedInput/Output

comment:3 by Greg Couch, 8 years ago

Resolution: fixed
Status: assignedclosed

Here are some preliminary results using a session file that only has 4v8r in it (128780 atoms and 130160 bonds -- no ribbons):

v1 sessions use pickle, v2 session use msgpack

File size:

  • compressed v2 session is 0.2% smaller than v1, uncompressed v2 session is 3.5% smaller than v1
  • compressed sessions are 6 times smaller than uncompressed ones
  • uncompressed v2 session is 31% larger than mmCIF file!

Speed:

opening the mmCIF file is still faster than opening the session

  • compressed v1 session is 30% slower (current default)
  • uncompressed v1 session is 23% slower
  • compressed v2 session is 22% slower
  • uncompressed v2 session is 16% slower

so v2 session restoring is 6% faster than restoring v1 sessions.

comment:4 by Greg Couch, 8 years ago

Resolution: fixed
Status: closedreopened

For 4v8r, 85% of the restore time is in _RestoreManager.resolve_references(). Need equivalent of state.FinalizedState for restores.

comment:5 by Greg Couch, 8 years ago

Resolution: fixed
Status: reopenedclosed

After putting FinalizedState object output, only 1.2% of time was spent in _RestoreManager.resolve_references(). In this case, there was a 6X speed up.

Note: See TracTickets for help on using tickets.