Re: Re: Exploring using Rust for implementing a faster ZEO server.
Jim Fulton <[email protected]>
| Newsgroups | gmane.comp.web.zope.zodb |
|---|---|
| Message-ID | <CAPDm-FgFS8c5YB=6nm_Lgs3DQ0rTgRpgycSESko6dLt4V4jaPw@mail.gmail.com> |
On Sun, Sep 25, 2016 at 1:18 PM, wilk <[email protected]> wrote: > On 25-09-2016, Jim Fulton wrote: >> I'm exploring using Rust to implement a faster ZEO server. To do a >> quick performance comparison, I implemented a file-storage iterator in >> Rust. It's about 20x faster (40x excluding system time) than the >> Python version. >> >> Here's a write-up: >> >> http://jimfulton.info/site/2016/Sep/25/experiment-compare-zodb-file-storage-iteration-with-python-and-rust/ > > Very interresting, thanks to share your experience. > > You mention often Go. Did you try it also ? I've tried to use Go a number of times, but it always annoys me. :) - I think it's error handling is a huge pain. - As is lack of generics. Rust: - is generally faster, because no run time. - It's error handling is also annoying. Like Go, the proper way to check for errors is by checking return values. However, in Rust there's a powerful type system, pattern matching and macros that make error handling much much saner. - It has generics and a powerful type system. - It's memory-management system is fascinating and maddening, pushing as much memory-management logic as it can to compile time. It's more fun than a video game. ;) > I think the storage part will not offer anything but maybe the server > part will be easier to code ? Idk. > I don't know Rust, but in Go I was surprise how it was easy to turn > anything to a very efficient server without any external dependency. BTW, Rust embraces dependency rather than welding batteries in place. I consider this a feature. :) Jim -- You received this message because you are subscribed to the Google Groups "zodb" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.