Performance

Episode 87. Ok, it’s time to get Reactive!

It’s that Streaming-new-deal that has been taken over the web world, Reactive! You’ve heard about it, and maybe even tried to learn it a couple of times but find it confusing? Well, be confused no more since on this episode Bob and I explore the basic foundations of Reactive (and explain what is that makes is so confusing to begin with)

But that’s not all. We also dive on why is such a “hot” technology and why is the recommended approach on new microservices, even so, we also explore its drawbacks and why we shouldn’t rip everything apart to make “reactive” things.

Lastly we start exploring one of the “reactive” frameworks with Spring WebFlux, and explore how to “think” about Reactive (and came with the marble track analogy). In all, this episode will shed light on a topic that has been hard to understand, but on which, if done correctly can bring a very large performance gain!

FOLLOW US JavaPubHouse on twitter! Where we will be sharing new tech news, and tutorials!



We thank DataDogHQ for sponsoring this podcast episode

DataDog Logo
Don’t forget to SUBSCRIBE to our cool NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!


And Follow us! @javapubhouse and @fguime and @bobpaulin

Episode 86. Move Over Slow Startup times, GraalVM…IS…HERE. (and cross-language support, and less memory footprint…)

Oh my! This episode is going to be one of our favorites. There are times where the Java ecosystem delivers something incredibly interesting (InvokeDynamic, Lambdas, Streams, Kotlin), and this episode is one of those! You may have heard it mentioned around the interwebs or conferences (this new GraalVM thing)… well, it’s here to stay and is propelling JVM languages to a whole new level of interoperatibility and performance!

So GraalVM at the very high-level view is a “Java Virtual Machine” (in reality there’s much more to it, but we can at least start there). It provides tons of interesting features, like the ability to not only compile Java/JVM languages, but also Javascript, LLVM Languages (like C++), Python, R (and is expanding to others), and more importantly, interoperatibility between all these languages.

But the bee’s knees (or the most interesting fact) is that GraalVM also have the “Native Image”, which allows you to completely bake in a Linux (more platforms coming) binary straight up from your source code. The Native Image doesn’t require Java to be installed, and you can start your application as you would any other Linux executable. The most impressive part? Startup times are incredibly fast!

So we have usually addressed tons of misinformed myths of the Java language like “It’s slow:” (No, not really), or “You can code more performant code in C++” (possibly, but you have to be an expert to squeeze more performance than the JVM’s JIT compiler). But one area that the claim has held true is that “Java has slow startup times”. And (it used to be) true! Because of the dynamic classloading that Java supports, it’s very hard for the JVM to startup fast. For long running applications this is usually not a problem, even so, for the new Cloud folks (and Lambdas, and AutoScaling Groups), fast startup time is a “thing”. And so, with GraalVM (with some caveats) we are conquering one of the last arguments against the JVM languages.

In all, THIS is the episode to listen this year. It’s exciting, new technology that we could really spin up and use. Let’s have fun programming again with GraalVM.

FOLLOW US JavaPubHouse on twitter! Where we will be sharing new tech news, and tutorials!



We thank DataDogHQ for sponsoring this podcast episode

DataDog Logo
Don’t forget to SUBSCRIBE to our cool NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!


And Follow us! @javapubhouse and @fguime and @bobpaulin

Episode 84. Let’s get down and dirty w/Netty!

So you get that project that needs to connect to a server that doesn’t talk rest, or http(s), but has its own protocol (or maybe it DOES talk https but you are looking for incredible performance!). Well, look no further than Netty! Sure, sure, you could really spend time working with NIO.2 and creating your own sockets and all that jazz, but why? The Netty.io folks already did it, and by golly they created a library that’s “blazingly fast”.

So take a dive into this episode where we talk about the main netty concepts (like pipelines and handlers), and give you a tip or two as you embark down into protocol performance bliss. Netty has seen it all, and has been battle tested for a while now (Have you heard of Jetty? well, that has Netty under the hood), and best of all, we go over how to be “lazy” about it! Netty really implemented a lot of protocols, events, and stuff already (for example LengthFieldBasedFrameDecoder, ProtobufVarInt32FrameDecoder, SslHandler, WebSocket00FrameDecoder and much more!), so you don’t have to be the wiser and implement things from scratch… chances are… Netty already has them (or at least will have the right tools to create your own thing).

FOLLOW US JavaPubHouse on twitter! Where we will be sharing new tech news, and tutorials!



We thank DataDogHQ for sponsoring this podcast episode

DataDog Logo

We also thank OverOps for sponsoring this podcast episode

OverOps Logo
Don’t forget to SUBSCRIBE to our cool NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!


And Follow us! @javapubhouse and @fguime and @bobpaulin

Episode 82. Uh-oh Spring… you got some serious competition from Micronaut!

So the internet is all raging about this (not so little) framework that is doing it all. Created with a “cloud-first” mentality, @Micronautfw is aiming to be your next Spring Boot! And, oh gosh, how easy they are making it.

We dive into what makes Micronaut such a darling of the internet right now (not using reflection, GraalVM ready, better memory consumption) and see how much “stuff” is in there (the TLDR; A Lot). We go from creating a microservice, to looking at the different already-implemented features like circuit breakers, properties/profiles, beans, support for lambdas, micrometer, reactive programming, and all. While it might not have “everything” that Spring does, the reality is that it’s pretty solid.

Would you consider Micronaut for your next project? The answer is maybe (and for some cases, maybe Yes). So come, and take a listen to the underdog framework (Micronaut) that’s stepping up to definitively take the reigning Champ (Spring)

FOLLOW US JavaPubHouse on twitter! Where we will be sharing new tech news, and tutorials!



We thank DataDogHQ for sponsoring this podcast episode

DataDog Logo

We also thank OverOps for sponsoring this podcast episode

OverOps Logo
Don’t forget to SUBSCRIBE to our cool NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!


And Follow us! @javapubhouse and @fguime and @bobpaulin

Episode 65. Oh my gosh, we missed CACHING! (what a cache miss!)

What a strange omission, of all the concepts, one that all of us should always have is Caching. We have used it (and most likely we have been burned by it). Come and take a listen on how to correctly (or at least not as incorrectly) think about caching, finding out your “game plan”, and using JSR-107, or Hazelcast, or Apache Ignite or Spring. LRU? Time-based? How much memory? Long distribution tails? cacheable keys? All concepts that you should ask before creating/using a cache!

Don’t forget to SUBSCRIBE to our cool new NewsCast!
Java Off Heap

Do you like the episodes? Want more? Help us out! Buy us a beer!

And Follow us! @fguime and @bobpaulin

Episode 57. Sometimes you want to buy local, ThreadLocal that is!

Threadlocal is great! It can help you get out of sticky situations, and give you a great boost of performance and/or isolation. But with great tools comes great responsibility. Threadlocal can also be misused, and create memory leaks, or object corruption, and unknown sharing. So if you ever had seen one and never quite got what it does, or even if you were consider using one. Take a listen! And steer the people in the right way for the use of Threadlocal.

Also, Thanks Michael for pointing the issue with episode 55 and rebasing!

Don’t forget to SUBSCRIBE to our cool new NewsCast!
Java Off Heap

 

Do you like the episodes? Want more? Help us out! Buy us a beer!

Episode 56. Let’s have a frank talk about Unsafe! and why you shouldn’t (or should) use it

So you heard about sun.misc.unsafe. Even if you are in certain circles you might have heard about that it was (almost) removed from Java 9. And if you were really paying attention you would’ve heard the cries of every major Java Framework to the news. While it didn’t happen (Unsafe is still in Java 9, and possibly in Java 10+), we should dive into why is it so attractive, and creates such a divided opinion (JVM implementers want it gone. Performance nuts want it in)

Don’t forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap

Do you like the episodes? Want more? Help us out! Buy us a beer!

Episode 49. Don’t put Pressure on me! (About Generational Garbage, and Pressures)

We know how important it is to mind your p’s and q’s when it comes to garbage (and garbage collection). We go deep into how Generational Garbage Collectors work including reference types (strong, weak, soft, phantom), also how Garbage Collection Pressure (GC Pressure) happens, and how can we create code that is friendly to Generational GCs. In all is a collection of Garbage-related issues that all of us should know. Come and take a listen!

Follow us! @fguime , and @bobpaulin

Subscribe to our new Podcast, JavaPubHouse’s Off-Heap!
We cover the current tech news related to our famously popular language, and will give our two cents on what it means to us as Java Professionals. So come and subscribe!

Help us pay for bandwidth! (Or a beer!)

Questions, feedback or comments! (comments@javapubhouse.com)

Subscribe to our podcast!

Episode 38. Hyperthreading, L1/L2 caching, cache busting, thread trashing, and priority bumping!

So we hear about HyperThreading and how it is sooo cool, well, it is and it isn’t. If you are really trying to squeeze performance out of your application HyperThreading might not be what you’re looking for. There are so many other things that happens at the CPU level that have so weird names (like Thread Thrashing, ‘say whaaaat?’). If you are really serious on squeezing every worthy CPU cycle of your app (or if you’re interesting on what really really goes under the hood) take a listen! (ah! and treat me a beer, if you like what you hear!)

Follow
Me
on
Twitter! (@fguime) (thanks!)

Hey it’s ALMOST SUMMER! and I would love to get a beer 🙂

Tweet, Tweet! (https://twitter.com/#!/fguime)

 

Vote for us in iTunes (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/gp/product/1430240563/ref=as_li_ss_il?ie=UTF8&tag=meq-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1430240563)
Hey! if you like what you hear, treat me a beer! (It’s the Java pub house after all 🙂 https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Z8V2ZWV93UMW4

Episode 36. An Intro to Multithreading Programming

This is a presentation I did for the Chicago Java Users Group on the topic of multithreading. There are some solid foundations in here to start tackling multithreading programming. Some of it might’ve been already been seen in depth from our other episodes, but in all, it has good foundations for anyone that does multithreading programming.

Follow
Me
on
Twitter! (@fguime) (thanks!)

Hey it’s winter (and not too many reasons to be outside, so might as well stay home and drink a few!) If you like what you hear, treat me a beer ! 🙂 (It’s the Java pub house after all 🙂

Tweet, Tweet! (https://twitter.com/#!/fguime)

Vote for us in iTunes (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/gp/product/1430240563/ref=as_li_ss_il?ie=UTF8&tag=meq-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1430240563)
Hey! if you like what you hear, treat me a beer! (It’s the Java pub house after all 🙂 https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Z8V2ZWV93UMW4