Apple Silicon and IB TWS

You consider 30 seconds slow. ?

It takes significantly longer to load than any other PC app that I use. Only video games on my Xbox One take longer to load. However, once TWS is loaded, it's sufficiently fast for my purposes so I don't really have a problem with it. It just feels a bit bloated during startup and most of the tools I have never used.
 
The first statement from the IB support only applies to the 32-bit version, not the 64-bit version of Java / TWS package. Only the 32-bit Java JRE can't access more than 2 GB (although I thought the limit was a tad higher than that, closer to the maximum theoretical 4 GB addressable space for a 32-bit system). I remember a 2 GB limit for Windows XP 32-bit, but I thought there was a way to access a little more memory than that with that system...anyhow, 64-bit Java can address / use more memory than is available in any PC that exists today. So I would make sure that you are running the 64-bit version of TWS available here:

https://www.interactivebrokers.com/en/index.php?f=16040

As for TWS being garbage, I wouldn't say it is garbage, but it does feel a bit bloated and I'm sure I could rewrite it to run faster if I had the time / opportunity without sacrificing features. The speed of TWS has very little to do with Java and a lot more to do with how it was written.

I am already running the 64bit version and I have 32GB of system ram...makes no difference
 
I used to run TWS on 1.4Mhz single core, 512M laptop back in 2004.

It ran just fine.

Its an issue of if you push TWS beyond the basics it simply doesn't hold up compared to other platforms. Get above a dozen charts and add in some indicators and it crumbles
 
TWS is a programmers Cluster-F*&^. It's very poorly written app. It looks like the charting function is not global and every chart that's being drawn are done differently.

As for the original topic, M1 could possibly have a JVM core that Mac may be able to use which will boost the $hitty TWS tremendously. This would be great if the M1 chip had a JVM Core because this would reduce the GC as all of the JVM maintenance is offloaded to the chip.

IMHO -- TWS needs to be completely rewritten from scratch and not one part of the old code should be used. It makes no difference if the Java is selected as the new replacement. The app is more than 10 years old which places it beyond the life of a dinosaur.

edit: to be honest TWS should migrate all this to Scala. https://www.scala-lang.org/
 
Last edited:
TWS is a programmers Cluster-F*&^. It's very poorly written app. It looks like the charting function is not global and every chart that's being drawn are done differently.

As for the original topic, M1 could possibly have a JVM core that Mac may be able to use which will boost the $hitty TWS tremendously. This would be great if the M1 chip had a JVM Core because this would reduce the GC as all of the JVM maintenance is offloaded to the chip.

IMHO -- TWS needs to be completely rewritten from scratch and not one part of the old code should be used. It makes no difference if the Java is selected as the new replacement. The app is more than 10 years old which places it beyond the life of a dinosaur.

edit: to be honest TWS should migrate all this to Scala. https://www.scala-lang.org/

Something else thats a cluster fuck that Support told me is that each indicator on a chart is considered a line of data (you're allowed 100 simultaneous lines)

Which is bonkers to me. So rather than fetch one line of data for the price movements of a stock and locally deriving from that the indicators and plotting. Each indicator independently fetches price information and calculates...Seems very redundant...but Im not a coder.
 
TWS is a programmers Cluster-F*&^. It's very poorly written app. It looks like the charting function is not global and every chart that's being drawn are done differently.

As for the original topic, M1 could possibly have a JVM core that Mac may be able to use which will boost the $hitty TWS tremendously. This would be great if the M1 chip had a JVM Core because this would reduce the GC as all of the JVM maintenance is offloaded to the chip.

IMHO -- TWS needs to be completely rewritten from scratch and not one part of the old code should be used. It makes no difference if the Java is selected as the new replacement. The app is more than 10 years old which places it beyond the life of a dinosaur.

edit: to be honest TWS should migrate all this to Scala. https://www.scala-lang.org/

I would not say that TWS is "shit" or "very poorly written". Overall, it works well for me and I suspect that it works well enough for most people. Otherwise IB would have heard many complaints and would have invested more time in making it better if it was really turning off many potential customers.

PCs, laptops, and phones have existed for over a decade with multiple cores. The OS may elect to dedicate one core to running TWS or any other app, but the M1 CPU cannot execute Java bytecode directly. There have been implementations of CPUs that can execute Java bytecode, but they never really took off.

https://en.wikipedia.org/wiki/Java_processor

Code doesn't age. If it was written well in the first place, I don't see any reason to rewrite it. Scala runs on the JVM. So if that Java code was well-written, what benefit would there be to rewrite it using a different language that runs on the same VM?
 
Something else thats a cluster fuck that Support told me is that each indicator on a chart is considered a line of data (you're allowed 100 simultaneous lines)

Which is bonkers to me. So rather than fetch one line of data for the price movements of a stock and locally deriving from that the indicators and plotting. Each indicator independently fetches price information and calculates...Seems very redundant...but Im not a coder.

That might be true for some indicators such as VWAP. But for most common price-based tech analysis indicators derived from the same timeframe, should not be necessary.
 
That might be true for some indicators such as VWAP. But for most common price-based tech analysis indicators derived from the same timeframe, should not be necessary.

Its what support told me...And they insisted that was the case when I question it because it makes no sense.
 
Back
Top