Suggest an editImprove this articleRefine the answer for “Why can Flyweight improve performance?”. Your changes go to moderation before they’re published.Approval requiredContentWhat you’re changing🇺🇸EN🇺🇦UAPreviewTitle (EN)Short answer (EN)**Flyweight** improves performance because it **reduces the load on memory and on object creation**, especially when working with millions of elements of the same type. **Key point:** fewer unique objects improve data locality, so the processor caches them more efficiently and the garbage collector runs less often and faster.Shown above the full answer for quick recall.Answer (EN)Image**Flyweight** improves performance because it **reduces the load on memory and on object creation**, especially when working with millions of elements of the same type. --- ### 1. **Fewer Objects Created** Instead of storing identical data (for example, texture, color, shape) in every instance, Flyweight creates **one shared object** and **reuses it across all of them**. This sharply reduces the number of memory allocations and the load on the garbage collector. > Example: instead of 10,000 objects with the same font, a single `FontFlyweight` is stored and used by every character. --- ### 2. **Memory Savings Mean Fewer GC Pauses** With a large number of objects, memory becomes the "bottleneck". When duplicated data is moved into a shared pool, memory is used more efficiently, and the garbage collector runs less often and faster. --- ### 3. **Fast Initialization** Creating a new "lightweight" object comes down to a **reference to an already existing flyweight**: there is no need to reload resources, textures, or data every time. ```java TreeType type = TreeFactory.getTreeType("Oak", "Green", "Rough"); Tree tree = new Tree(x, y, type); // fast creation ``` --- ### 4. **Using a Cache (Object Pool)** Flyweight is often implemented as an **object pool**: reusing already-created instances instead of constantly recreating them increases response speed. --- ### 5. **Better Use of the CPU Cache** Fewer unique objects improve **data locality**: frequently used values sit close together in memory, and the processor caches them more efficiently. --- **Summary:** Flyweight improves performance by: - reducing the number of objects, - cutting memory consumption, - speeding up initialization and caching, - reducing the load on the garbage collector. It makes the system **light and fast**, especially under mass, uniform operations.For the reviewerNote to the moderator (optional)Visible only to the moderator. Helps review go faster.