Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » Which parts of Esc are the biggest reasons of its slowliness?
Re: Which parts of Esc are the biggest reasons of its slowliness? [message #4561 is a reply to message #4559] Tue, 15 August 2006 12:34 Go to previous messageGo to previous message
mirek is currently offline  mirek
Messages: 14261
Registered: November 2005
Ultimate Member
About U++ heap: Memory allocator of U++ is I believe the most optimal possible algorithm&implementation (inspired by Boehm's GC). In fact, if I would have time, it would be worth to publish paper just about techniques used there Smile

Just some highlights:

- Small-block fast allocation+dealocation path (used in majority of cases) has about 20+20 assembler instruction (plus synchronization in MT).

- There is less than one byte of management data overhead per small block. That also means that the smallest block size can be 4 bytes without problems (on 32-bit platform, on 64 it is 8 bytes). Actually, smaller blocks have lower overhead than larger ones, unlike classic allocators.

- Small-block fragmentation for real-world cases is limited by absolute value (I am not sure at the moment, but if I remember last tests well, averge maximum fragmentation limit is about 100KB).

Now USE_MALLOC is development macro that turns this high-efficient U++ heap off and uses regular malloc instead...

Mirek

[Updated on: Tue, 15 August 2006 12:37]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Previous Topic: A list of SQL dialects to support (eventually)..
Next Topic: upp package installer
Goto Forum:
  


Current Time: Sun Jun 08 20:40:33 CEST 2025

Total time taken to generate the page: 0.04434 seconds