4 ms·
When rewriting Synapse in Python 3, did you use new language level features and optimizations? And what was your experience in doing so? I've heard a lot on bo
by priansh 8y ago
When rewriting Synapse in Python 3, did you use new language level features and optimizations? And what was your experience in doing so?
I've heard a lot on both sides of the fence as far as adopting python 3 exclusive language features for optimizations as well as using Cython everywhere but I'm not really sure where consensus lands. Kudos to you however, this is one of my favorite projects and will continue to be!
- Arathorn 8y agoSynapse currently runs on both Python 2 and 3, so we're not using any of the Python 3 specific language level features yet. We're considering dropping Python 2 support around April however to open up all the Py3 specific stuff. We've seen significant perf improvements anyway however - both due to switching to UTF8 for string encoding and some dict operations getting much faster. https://matrix.org/blog/2018/12/21/porting-synapse-to-python-3/ https://matrix.org/blog/2018/12/21/porting-synapse-to-python... has all the gory details :)
- juliangoldsmith 8y agoHas performance been looked at on the database side at all? While picking apart the Synapse database, I noticed some design choices that would cause very significant performance hits, particularly the use of string keys everywhere.
- Arathorn 8y agonot yet, frankly. with 1.0 we've focused exclusively on the correctness of the protocol and the implementation. next up is making it fast (at last).