HiPE to be removed in OTP 24?

Max Lapshin max.lapshin@REDACTED
Mon Jun 22 08:46:36 CEST 2020

I want to add my 5 cents about JIT and performance.

For the last 10 years I develop and sell video streaming server
Flussonic and we have implemented one of the most comprehensive media
frameworks on the market.
Due to choosing erlang instead of C++ we could develop a lot of
features and keep software fast.

We do not have any competitors (comparable by feature set) written in
C++, almost all of them are dead and out of race (others will get out
soon =)) and _all_ of them do not have even 1/3 of our feature set. It
is very, very hard for C++ to compete with erlang when you need to add
features quickly. The same situation with Golang projects: they all
get stuck when you need to find out what is eating 100 MB per second
of RAM.

We have only one competitor that is 13-14 years old and is written in
Java. We have very close features set to each other (except our neural
networks and our own hardware, designed for an erlang cluster, of
course =) and what can I say about JIT and performance?  It doesn't
help them at all.

When we speak about streaming 10-40 Gbps to 10-40 000 connected
clients, consuming 24 cores of Xeon, it happens that Jave JIT doesn't
bring any magic speedup and we consume almost the same amount of CPU.
Maybe it happens due to our specific needs.

What I really have problems with is profiling.  I do not understand
how to profile when it shows that all CPU is consumed by setelement
and lists:keyfind

More information about the erlang-questions mailing list