I talked to Martin after a CodeMesh, and had a wonderful discussion with
him about performance from his side of the issue. From "his side" I mean
super high performance. You have to get a bit of background on some of his
work (at least the work he talks about), much of what he does is high
throughput trading systems. In these systems you will often see small
messages (50 bytes or so) and the the goal is to process them as quickly as
possible.

This means that almost everything is secondary to throughput. So let's take
that generalization and apply it to the more common work I or people like
me do...here we care mostly about programmer productivity, and making
simpler systems. Here immutability and STM like concepts (I'm dumping STM
in with atoms here) work pretty well.

At one point in our conversation Martin mentioned that he was able to get
about 100,000 messages through his system a second. That's awesome! How
often do you have 100k messages in your system?

Everything has tradeoffs. One more example was when Martin explained how he
was able to get a 10x performance boost by pinning a JVM to each socket in
a server, then pinning that JVM's memory to the RAM sockets closest to that
CPU socket. Then he carefully setup shared memory message passing via
burning one core on each CPU to monitor the queues, and moving messages
only in the directions directly supported by the Hyper Transport bus. Once
again, that's amazing...once again I've never needed that to ship a
product.

Sadly, other parts of that talk are very true. Many programmers I've talked
to don't understand the difference between a hash map and a list, let alone
understand when they would use them. So I'll fight that battle, and Martin
can fight his, and I'll apply his work to my problems as the solution fits.

So that's the way I view it. I don't claim to know much at all about
Martin's work, I just know enough to know that I don't deal with those
problems. Most servers I work on are idle at least 50% of the time. And
when they do get overloaded I can just startup more machines.

Timothy


On Thu, Mar 13, 2014 at 10:58 AM, Andy C <andy.coolw...@gmail.com> wrote:

> Hi,
>
> So the other day I came across this 
> presentation:http://www.infoq.com/presentations/top-10-performance-myths
>
> The guy seems to be smart and know what he talks about however when at
> 0:22:35 he touches on performance (or lack of thereof) of persistent data
> structures on multi-core machines I feel puzzled.
>
> He seems to have a point but really does not back it with any details.
> There is also a claim that STM does not cooperate well with GC. Is it true?
>
> Thanks,
> Andy
>
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
"One of the main causes of the fall of the Roman Empire was that-lacking
zero-they had no way to indicate successful termination of their C
programs."
(Robert Firth)

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to