Presentation: Java vs C Performance
Abstract
Java vs C Performance. Again. There seems to be a set of widely held wildly incorrect beliefs about Java and C performance. I say "widely held" because I hear them constantly - even after 20 years of pointing out the evidence. I say "incorrect beliefs" because they are shown wrong with even the most rudimentary scientific study, i.e. a simple benchmark. I say "wildly incorrect" because nearly always I see blatantly broken benchmarking, being used to drive home some wrong point.
E.g.: I've heard a person claim some web server is better than another because "printf (in C) is faster than Java's printing!"; or seen Java locking performance tested - on a single-threaded and single-core systems; or read reports using system timers that only report to 10msec accuracy used for nano-second timing. I've seen an HPC C program vary speed by 30% depending on the user name length, or by linking it with file-globbing vs some other order. I've seen both languages run an order of magnitude faster than the other, both purportedly trying to accomplish the same task, but with wildly different implementations. The hall of benchmark shame goes on and on.
This is my attempt to shed some light on the situation; we'll look at both languages' strong and weak points - and then look at all the different broken ways people gather "facts" to make claims - and then up level to looking at programming context surrounding language choices, which often have a much stronger impact on the business of programming than mere language choice! This talk is a fun romp through everybody's favorite whipping boy: the *other* (not mine!) silly languages Out There, And Why They Are Silly (and I'm Not)
Similar Talks
Tracks
Covering innovative topics
Monday Nov 16
-
Architectures You've Always Wondered About
Silicon Valley to Beijing: Exploring some of the world's most intrigiuing architectures
-
Applied Machine Learning
How to start using machine learning and data science in your environment today. Latest and greatest best practices.
-
Browser as a platform (Realizing HTML5)
Exciting new standards like Service Workers, Push Notifications, and WebRTC are making the browser a formidable platform.
-
Modern Languages in Practice
The rise of 21st century languages: Go, Rust, Swift
-
Org Hacking
Our most innovative companies reimagining the org structure
-
Design Thinking
Level up your approach to problem solving and leave everything better than you found it.
Tuesday Nov 17
-
Containers in Practice
Build resilient, reactive systems one service at a time.
-
Architecting for Failure
Your system will fail. Take control before it takes you with it.
-
Modern CS in the Real World
Real-world Industry adoption of modern CS ideas
-
The Amazing Potential of .NET Open Source
From language design in the open to Rx.NET, there is amazing potential in an Open Source .NET
-
Optimizing You
Keeping life in balance is always a challenge. Learning lifehacks
-
Unlearning Performance Myths
Lessons on the reality of performance, scale, and security
Wednesday Nov 18
-
Streaming Data @ Scale
Real-time insights at Cloud Scale & the technologies that make them happen!
-
Taking Java to the Next Level
Modern, lean Java. Focuses on topics that push Java beyond how you currently think about it.
-
The Dark Side of Security
Lessons from your enemies
-
Taming Distributed Architecture
Reactive architectures, CAP, CRDTs, consensus systems in practice
-
JavaScript Everywhere!
Javascript is Everywhere. Learn why
-
Culture Reimagined
Lessons on building highly effective organizations