Use Strings carefully β οΈ
If two Strings are concatenated using β+β operator in a βforβ loop, then it creates a new String Object, every time.
This causes wastage of Memory and increases Performance time.
Also, while instantiating a String Object, constructors should be avoided and instantiation should happen directly. For example:
#memory #java #string
@ProgrammingTip
If two Strings are concatenated using β+β operator in a βforβ loop, then it creates a new String Object, every time.
This causes wastage of Memory and increases Performance time.
Also, while instantiating a String Object, constructors should be avoided and instantiation should happen directly. For example:
//Slower Instantiation β
String bad = new String("string object");
//Faster Instantiation β
String good = "string object";
#memory #java #string
@ProgrammingTip
Avoiding Memory Leaks By Simple Tricks β
Memory Leaks often cause performance degradation of software. Since, Java manages memory automatically, the developers do not have much control.
But there are still some standard practices which can be used to protect from memory leakages. ππ»ββοΈ
1οΈβ£ - Always release database connections when querying is complete.
2οΈβ£ - Try to use Finally block as often possible.
3οΈβ£ - Release instances stored in Static Tables.
#java #memory #performance
@programmingTip
Memory Leaks often cause performance degradation of software. Since, Java manages memory automatically, the developers do not have much control.
But there are still some standard practices which can be used to protect from memory leakages. ππ»ββοΈ
1οΈβ£ - Always release database connections when querying is complete.
2οΈβ£ - Try to use Finally block as often possible.
3οΈβ£ - Release instances stored in Static Tables.
#java #memory #performance
@programmingTip
Cloudflare saved 100 TB of RAM with math and Rust π₯
Cloudflare reclaimed more than 100 TB of RAM globally in a Pingora-based consistent-hashing service. No new hardware. The win came from changing data representation and the algorithms around it.
β
Lessons:
β’ Measure retained memory, not only allocation rate.
β’ Check collection shape: duplicated keys, oversized buckets, and pointer-heavy graphs add up fast.
β’ Fix the model first: a smaller or more compact structure usually beats micro-optimizing a hot loop.
For high-cardinality caches, routing tables, or tenant maps, take a heap dump before reaching for another cache node. A few bytes per entry becomes expensive at fleet scale.
[ Blog ] :
https://blog.cloudflare.com/saving-100-tb-of-ram-with-math
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Performance #Memory #Rust
@ProgrammingTip
Cloudflare reclaimed more than 100 TB of RAM globally in a Pingora-based consistent-hashing service. No new hardware. The win came from changing data representation and the algorithms around it.
β’ Measure retained memory, not only allocation rate.
β’ Check collection shape: duplicated keys, oversized buckets, and pointer-heavy graphs add up fast.
β’ Fix the model first: a smaller or more compact structure usually beats micro-optimizing a hot loop.
For high-cardinality caches, routing tables, or tenant maps, take a heap dump before reaching for another cache node. A few bytes per entry becomes expensive at fleet scale.
[ Blog ] :
https://blog.cloudflare.com/saving-100-tb-of-ram-with-math
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Performance #Memory #Rust
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Cloudflare Blog
Saving another 100TB of RAM with math (and Rust)
Cloudflare's global network is immense but not limitless. As we look for small ways to trim our resource usage, we sometimes get lucky and we can cut significantly more. Hereβs how we reduced one of our Pingora-based service's RAM usage with statistics.