Hacker News new | ask | show | jobs
by tjoff 1340 days ago
> Turns out you can as long as you don’t garbage collect during the trading day by carefully managing allocations and manually running GC each day before trading starts.

The surprising thing here is that it is considered worth it with those limitations.

My hope/guess is that because of the GC hype there wasn't any good alternatives.

With the alternatives gaining maturity now I'd hope that that decision wouldn't be made today (when starting from a clean slate).

3 comments

> The surprising thing here is that it is considered worth it with those limitations.

It shouldn't be that surprising. Languages like Java and C# are perfectly sensible languages for writing the vast majority of a lot of trading systems. So it's eminently reasonable to use them, or equivalent, and deal with the bits that are GC-phobic as special cases.

I've worked with/on trading systems written is mainstream languages including C++, Java, C# and Python, as well as less mainstream such as APL and Smalltalk. I can safely say that there are way more critical concerns than whether or not it uses a GC.

We have Rust now, and some safe memory usage patterns for C++. GC just increases your energy bill and helps heat up the planet.
> GC just increases your energy bill

How? GC does its work in large batches once in a while, whereas for example Arc (the only serious alternative to what GC brings, which is the ability to have arbitrary graphs of objects) does its work much more frequently, with additional effort expended on atomic operations in a multithreaded environment, and with additional memory writes to boot. Somehow I doubt that GC "just increases your energy bill".

[Citation needed] Rust encourages reference counting, a particularly inefficient form of GC which actually turns reads into writes(!), and it cannot move objects to compact memory except when it can prove that every object has only a single reference.
>We have Rust now, and some safe memory usage patterns for C++.

>GC just increases your energy bill and helps heat up the planet.

Were C++ compilation times that use 100% of my PC taken into consideration?

And not just for final binary, but also the compilations that happen everyday for development purpose too

I usually hear those sorts of rationalizations in companies that have already become feature factories. We just have to go fast. We can't make people slow down and learn discipline, or if we have, we can't go back and fix the past because we have to go go go.

In retrospect I think I should have put more effort into breaking the feature factory culture than the discipline culture. It's hard to get clean if your drug of choice is ready at hand.

> it is considered worth it with those limitations.

These people make decisions based on Excel spreadsheets that are not properly documented. I wouldn't trust their judgement, despite the fact they managed not to crash the global financial system too frequently.