<div dir="ltr">I have programmed high-frequency trading application in Erlang and comparing its reaction performance in the live market with other competing applications (mostly, in C).<div><br></div><div>It has been a consistent observation that my Erlang application lags substantially behind the competing applications. In fact, it never matched the reaction time of the so-called "slowest" C application in the market. </div><div><br></div><div>The benchmark reaction time is about 5 microseconds. It is the time elapsed between tick to order. That is, the difference between the timestamps when I receive the tick (market event) from the mailbox of my process and when I submit the TCP send call on my order.</div><div><br></div><div>My process maintains the market depths of the securities and when my desired price (as a function of best buyers and/or sellers on multiple legs of the order) is observed, I compute the order terms and submit. </div><div><br></div><div>The entire computation and communication (with the market) takes place within the single process and there are no collaborating processes (hence, no inter-process messaging; not even ETS). Still, the reaction time is in the order of 20 to 60 microseconds - that is, nowhere closer to the benchmark reaction time (5 microseconds).</div><div><br></div><div>What I wish to hear from the experienced people on this forum here is whether I am missing on something in my Erlang code, or should I just go ahead and program in C.</div><div><br></div><div>Thanks.</div></div>