Francesco Nigro Profile Banner
Francesco Nigro Profile
Francesco Nigro

@forked_franz

1,960
Followers
622
Following
742
Media
14,603
Statuses

while(1) fork() Proud @Java_Champions

Joined May 2016
Don't wanna be here? Send us removal request.
@forked_franz
Francesco Nigro
11 months
cloudflare always got good stuff!! #iouring
0
31
114
@forked_franz
Francesco Nigro
4 months
ok - WOW
3
26
114
@forked_franz
Francesco Nigro
6 months
Many thanks for this 😭 When I've started years ago my journey in the #java #performance land, I found @mjpt777 @PeterLawrey and @nitsanw blog posts, conferences and code...discovering they were all Java Champions (1/n)
@Java_Champions
Java Champions
6 months
Congratulations to new #Java Champion @forked_franz
Tweet media one
54
44
268
9
6
103
@forked_franz
Francesco Nigro
5 months
For JVM startup profiling I strongly suggest checking and for startup allocation profiling (in case performance isn't a concern) check @AndreiPangin nice suggestion at
@forked_franz
Francesco Nigro
5 months
Think about it: profiling sub-second startup of programs isn't very sampling-friendly and requires some mental shift vs runtime profiling. Love profiling won't negate understanding how useful is low-cost (TBD) tracing
0
1
7
1
21
76
@forked_franz
Francesco Nigro
6 years
@jugmilano @venkat_s Don't have enough space on my body, but that really worth a tatoo :)
Tweet media one
1
25
63
@forked_franz
Francesco Nigro
1 year
Unpopular opinion (can still change my mind): we should reject PRs performing thousands of stupid/obvious changes if not coming by the repo core committers. Stop using (the wrong way) OSS as a LinkedIn score multiplier
5
3
51
@forked_franz
Francesco Nigro
11 months
@vertx_project t the nerverending efforts to optimize the stack has paid off on @TFBenchmarks ! See
Tweet media one
1
19
51
@forked_franz
Francesco Nigro
2 years
I'm super happy about my new role as a performance (SW) engineer and so happy to have a crazy amazing team to learn from (1/2)
13
0
43
@forked_franz
Francesco Nigro
2 years
@marcan42 If you live in a cold place and wanna save some money by letting ThinkPad to heat it I believe you are missing an opportunity really
1
2
42
@forked_franz
Francesco Nigro
4 months
FYi I've looked with @royvanrijn the awesome article from @richardstartin at to see how to improve the hashcode using 31, and...with Graal JIT no need - it's just autovectorized :O, although (1/2)
@forked_franz
Francesco Nigro
4 months
@thomaswue @graalvm I am very impressed by autovectorization of Graal JIT
0
0
17
1
5
39
@forked_franz
Francesco Nigro
6 months
And I think that the http Vertx/Netty/improvements should be rightly give to @julienviet and @richardstartin (check ) - small things placed in the right place can make HUGE difference:)
@tivrfoa
tivrfoa
6 months
@helidon_project Excellent results! @vertx_project is doing great too! #Java
Tweet media one
1
7
18
1
8
38
@forked_franz
Francesco Nigro
4 years
Just read the nice article of @richardstartin and - wanna search again for gold on Hacker's Delight - really wanna improve the search API of #netty
1
6
36
@forked_franz
Francesco Nigro
1 year
@PR0GRAMMERHUM0R Performance is never absolute, but relative.
1
0
31
@forked_franz
Francesco Nigro
4 months
Sometime folks don't realize what is the big deal with @QuarkusIO bytecode generation to avoid reflective calls: Reflection has been optimized for years, but prior to JFK 18, it heavily relies on inflation, to perform decently. (1/2)
2
5
34
@forked_franz
Francesco Nigro
1 year
Recently found how many devs seems to not care about profiling as a common practice while valuating A vs B. Not mentioning how flamegraphs seems just unknown to many :"( Is it your same experience?
10
1
32
@forked_franz
Francesco Nigro
3 years
Yesterday fallen into for #aeron @mjpt777 is really well done, complete and readable! nice one!
2
10
33
@forked_franz
Francesco Nigro
3 years
For who believe #loom is going to save the day 2 devs: async libs often expose backpressure, but what happen if the "natural" concurrency level of blocking code become unbounded? Little law say...latency skyrocket. Backpressure MUST be handled somewhere and OOM isn't the answer
4
8
30
@forked_franz
Francesco Nigro
3 years
I know a great perf eng (nudge nudge @PeterVeentjer ) that years ago during an interview told me: "If you have an app that relies on I/O, looks there to find the low hanging fruits to get the most with less changes" And in the years after it turns to be a wise advice indeed :)
@gunnarmorling
Gunnar Morling 🌍
3 years
"Any improvements made anywhere besides the bottleneck are an illusion". Lots of great advice on #Java performance optimization in @holly_cummins ' session at @AccentoDev !
Tweet media one
4
23
128
0
6
28
@forked_franz
Francesco Nigro
7 months
I have strangely missed this nice article from @bellsoftware around #java #jfr #profiling Which help to understand the limits of the approach used by jfr for "CPU" profiling (better "method" profiling)
0
8
28
@forked_franz
Francesco Nigro
1 year
Just added a short guide on how to troubleshoot at it contains a JMH bench and a reproducer too, to have fun :)
0
16
28
@forked_franz
Francesco Nigro
6 months
Getting recognised in this has been a milestone to me, proving that it is working and the community is receiving something back, and that I should keep on pushing. Thanks everyone!!! (n/n)
1
1
27
@forked_franz
Francesco Nigro
4 years
Thanks @RedHat 4 #rechargeday I have enjoyed the life with my family and especially my dad
Tweet media one
0
1
26
@forked_franz
Francesco Nigro
9 months
Given that I'm on vacation I can reiterate this msg: watch #devoxxuk Especially if you are maintainers of products/libs which care about scalability. I've recently get notification of another known product affected by it (cannot disclose it yet, sorry)
1
7
24
@forked_franz
Francesco Nigro
3 years
@mariofusco So guitar pedals are based on 5G alien technology
2
0
24
@forked_franz
Francesco Nigro
1 year
Not many knows...after reading from @helidon_project I've decided to dig (& fix) @netty_project http 1.1 perf, hope now a new version of the same blog post will be posted, maybe comparing with @vertx_project (look at ) (1/2)
2
0
24
@forked_franz
Francesco Nigro
8 months
Highly recommended! It contains some interesting updates and new stuff related this infamous scalability #perf issue!
@rafaelcodes
Rafael Winterhalter
8 months
Interesting (and very digestible) talk about an inner working of JVM performance.
1
33
122
0
5
25
@forked_franz
Francesco Nigro
7 months
+100000
@acmel
Arnaldo Carvalho de Melo
7 months
Willy asks for help in removing all linked lists from the kernel.
Tweet media one
4
15
67
3
0
25
@forked_franz
Francesco Nigro
1 year
Ok I can say it. I love my job 💟
0
0
24
@forked_franz
Francesco Nigro
2 years
I am genuinely curious to see the new numbers of #netty Vs #helidon here Especially with the yet to be merged change addressing checkcast scalability:)
2
4
24
@forked_franz
Francesco Nigro
6 years
Tweet media one
1
12
23
@forked_franz
Francesco Nigro
5 years
After many years unable to have proper holidays for several reasons, I will go in honeymoon for 1 month in Japan...I really don't know yet how to handle this....without my laptop with me!!!! 😮
3
0
21
@forked_franz
Francesco Nigro
1 year
My dad (RIP beloved father) used to say: "cry if something hurt you, be happy if things works great..but don't let any of these feelings to last more then 5 minutes and determine your future"
0
0
22
@forked_franz
Francesco Nigro
4 months
@penberg If you need (when you already have a basic understanding of how things work) to catch up with the architectural part, this blog post is great (random article, you can find many in, including for CPU archs)
0
1
22
@forked_franz
Francesco Nigro
3 months
Wow @ClickHouseDB JIT at
0
8
21
@forked_franz
Francesco Nigro
3 months
This is the second scary part of the bug explained at and !!
@volothamp
Luca Molteni
3 months
I spoke about the performance of Drools and Optaplanner at the latest @VoxxedTicino , addressing a challenging JVM bug Take a look at the video and let me know your thoughts! 😀
3
14
31
0
6
22
@forked_franz
Francesco Nigro
5 years
Any feedback about using Java streams and JIT friendlyness? Seems that most Stream methods are just too big to be inlined :( Even @graalvm seems unable to avoid weird intermediate allocations due to the size of some stream classes...
Tweet media one
3
16
21
@forked_franz
Francesco Nigro
2 years
Very nice wrap-up of how #netty works under the hood for NIO It would be nice to see something like that for #io_uring @josefgrieb to show how much it simplifies things compared to NIO :P
1
5
21
@forked_franz
Francesco Nigro
3 years
#concurrent programming is hard. #distributed algorithms, maybe more. But what about concurrent bugs on distributed algorithm libraries? Please people, if something is that hard, just make it single threaded.
1
3
22
@forked_franz
Francesco Nigro
3 years
What people often forget about event driven programming based on some state machine is that if events come in some unexpected order some actions has to be taken. Knowledge is a power and from great powers...
6
9
20
@forked_franz
Francesco Nigro
6 months
Thanks to their efforts to educate others, I've fallen in love with this discipline, getting a giant first step into it. I've promised myself I would have done the same for every bit of knowledge gained, never retaining anything for me, to give others the same chance I had (2/n)
1
2
21
@forked_franz
Francesco Nigro
2 years
It's so easy to get impressed by the super nice articles of folks like @shipilev , @richardstartin , @nitsanw and others... The more I read them the more they will awake my thirst of knowledge Just thanks to have taken so much time and effort to write them!!
0
3
19
@forked_franz
Francesco Nigro
3 years
Why Java ReentrantLock isn't exposing an API to limit the size of the wait queue while acquiring the lock? Back-pressure everything, my new motto
2
2
21
@forked_franz
Francesco Nigro
4 months
@gunnarmorling @PeterLawrey in @netty I've used it to implement a generic indexOf(byte) which was key to improve \r\n http parsing, can be used with 8 bytes strides or vs the mmapped ByteBuffer
1
4
19
@forked_franz
Francesco Nigro
1 year
@brendangregg I think the Netflix article should mentioned few other work on it (already mentioned elsewhere, in other twwets), but as well that explain (thanks @AndreiPangin ) why AGCT wasn't able to detect it on flamegraphs, while perf yep
0
2
19
@forked_franz
Francesco Nigro
2 months
When you speedup a core method by 30% just by saving an array ref a local variable...ok, I don't feel cool 😔
2
0
19
@forked_franz
Francesco Nigro
3 months
Many thanks @richardstartin and @BachorikJ for this nice presentation around #profiling tools at @Jfokus !!! And thanks again to @AndreiPangin to be the enabler of some of the coolest things happening in the @java profiling land in the last years!
@jpbempel
Jean-Philippe Bempel @[email protected]
3 months
Future-proofing JVM profiling by @BachorikJ and @richardstartin at @Jfokus @datadoghq
2
29
74
0
2
19
@forked_franz
Francesco Nigro
3 years
Nice work of @chvest on #netty 5 yes yes and yes
Tweet media one
0
6
18
@forked_franz
Francesco Nigro
4 months
#1BRC i would be interested if anyone has profiled how much CPU cycles are consumed by C2 compilation in their solutions..:P
5
3
19
@forked_franz
Francesco Nigro
2 years
Today helped a friend at @RedHatJava to solve a perf issue around ReentrantReadWriteLock and...gosh - being reentrant means *always* keeping a per-thread state. Do you know what happen on release? You gotta cleanup the thread local state to save mem leaks of Thread...:O
3
2
18
@forked_franz
Francesco Nigro
2 years
inlining/interpreted/compiled/native frames are landing on @AndreiPangin #asyncprofiler Bye bye perf map...we've been good friends for many years...
0
3
17
@forked_franz
Francesco Nigro
9 months
@debasishg That's a very nice one indeed! Mine is Dijksra one
Tweet media one
2
4
18
@forked_franz
Francesco Nigro
6 months
@tivrfoa @helidon_project @vertx_project Yep! A summary of our efforts are at It's important to remember that Quarkus results are making uses a full-fat ORM (in its latestish version), which, for CPU bound tests like this with simple queries, has impacts
1
8
18
@forked_franz
Francesco Nigro
4 months
@thomaswue @graalvm I am very impressed by autovectorization of Graal JIT
0
0
17
@forked_franz
Francesco Nigro
5 months
This 👇 thanks for this @TheDonRaab !!
Tweet media one
@TheDonRaab
Donald Raab
5 months
I finally blogged about "My Journey to and as a Java Champion." Looking back five years and recalling things I had done before July 2018 and some of the things I have done since has been fun. Enjoy! 🙏
0
30
162
1
2
17
@forked_franz
Francesco Nigro
2 years
Ehi, that's me!!!
@chvest
Chris Vest
2 years
Franz is on another level with his latest performance investigations:
1
7
40
0
3
17
@forked_franz
Francesco Nigro
5 months
Having 2 days national/regional holiday and bring my 2yo child to watch the very first time the "city" is one of the most awesome experience I ever had ❤️
0
0
18
@forked_franz
Francesco Nigro
2 years
#asyncprofiler finally get in! Yeee The official, lightweight and unbiased (on large objects) allocation profiling (sampling)
0
5
18
@forked_franz
Francesco Nigro
2 years
The Type Pollution Agent has moved to under the Red Hat Perf Team umbrella ;) Old repo will be read-only soon
0
9
17
@forked_franz
Francesco Nigro
3 months
Finally this week placed some "Focus time" on the calendar to keep on writing "real" code, and I'm super excited and scared at the same time 🤣 Writing performance fixes is not really the same as coding something new!
1
0
17
@forked_franz
Francesco Nigro
2 years
Thanks to this article I wanted to refresh my knowledge on the Linux CFS scheduler and found this nice article too
@gunnarmorling
Gunnar Morling 🌍
2 years
📢 Blogged: " #Loom and Thread Fairness" Taking @java 19's Project Loom for a spin, I learned about an interesting aspect to the scheduling of CPU-bound workloads on virtual threads.
Tweet media one
18
60
277
0
5
17
@forked_franz
Francesco Nigro
3 years
It's very important to NOT be a linked list developer
@hey_yogini
Yogini Bende
3 years
What is a stack developer? 👀
Tweet media one
213
41
808
5
0
17
@forked_franz
Francesco Nigro
2 years
I'm often surprised how horrible code can be incredibly optimized by JIT - I would rather prefer it to break and be slow instead!
2
0
17
@forked_franz
Francesco Nigro
1 year
And now @mariofusco is rocking on the stage of @DevoxxGR ! 🎸 🎸 🎸
Tweet media one
@mariofusco
Mario Fusco 🇪🇺🇺🇦
1 year
If you are at @DevoxxGR and eager to learn when and how to profile your Java code come to @forked_franz and mine deep dive tomorrow moring Even better if you want to follow our workshop and code with us clone our project here:
1
2
7
0
1
17
@forked_franz
Francesco Nigro
5 years
Pushed a PR to the awesome #jctools for a POC of a XADD multi-producer wait-free queue...fingers crossed!!!!! p.s. The logic is totally mine, but I'm sure a paper with it must exists...it is too simple!!!!Multo-consumer should be easy too
1
2
16
@forked_franz
Francesco Nigro
5 months
This is a game changer -> #asm4everyone
1
4
15
@forked_franz
Francesco Nigro
7 months
Cannot wait to be at the @graalvm community event with @maxandersen , @mariofusco and other @RedHat mates!
2
1
16
@forked_franz
Francesco Nigro
5 months
As usual, the most powerful optimization is to not doing anything. Or reduce useless things to get in the hot path
1
1
16
@forked_franz
Francesco Nigro
4 years
I'm not a company man but ehi... @RedHat is changing me: love the great humanity of you, thanks 😍
2
0
14
@forked_franz
Francesco Nigro
4 months
It's nice to see how #1BRC polarize and activate different languages fans; it is indeed a good example to see how much dev effort is required to hit the same memory wall, if any
1
2
15
@forked_franz
Francesco Nigro
1 year
shit moment: when u spend N months improving a LOT something vs a chosen competitor and found (right at the end) it was cheating. :"( And I was complaining to have improved smth just ~30-40% @normanmaurer I need a friendly song here
7
0
15
@forked_franz
Francesco Nigro
4 years
@mariofusco @gunnarmorling Sure; I've loved this talk Just not sure if is for not I/O nerds, but @axboe has done a great job to make it digestible IMO :) If you need the TLDR one these are few around too:
0
6
14
@forked_franz
Francesco Nigro
2 years
After many years possessing intel CPUs I'll switch to an AMD Ryzen 5950X! I've never read AMD perf/dev tech docs and I'm a bit scary re Linux perf tooling current state (to not mention that toplev won't work with it afaik), any #perf friend experience?
5
3
15
@forked_franz
Francesco Nigro
3 years
I'm a man of honor :) I'm still investigating and will prepare some CI job to run of real decent HW too, but has been quite interesting... #io_uring is impressive as expected and @josefgrieb and @normanmaurer have done an awesome job in #netty for it :)
@fleming_matt
Matt Fleming
3 years
@forked_franz @ApacheActiveMQ Blog post/tweets or it didn’t happen 😉
1
0
1
2
5
14
@forked_franz
Francesco Nigro
8 months
This year at @DevoxxBE me and @mariofusco will entertain you with the fabulous world of uncertainty and mistery (and misery?) ie JVM profiling of @QuarkusIO apps: If you find any #perf issue worthy of opening an issue, win t-shirt! (1/2)
4
3
15