ReactOS Speed (was Re: [ros-kernel] Re: atapi with bus master dma)

Waldo Alvarez Cañizares wac at lab.matcom.uh.cu
Tue Mar 2 16:11:59 CET 2004


Hi:
 
I'm working in npool and yes ReactOS speed improves alot whith a better allocation algorithm. Wait a little, I made separated things in bins like in the Doug Lea's allocator to reduce fragmentation (wich reduces tree dephs too and makes things faster, that also let me use more fine grained locks, one per bin). I still have to implement allocations using bitmaps for little sizes to reduce the bookeeping overhead (wich will improve locality of reference for allocated chunks). Just wait a little I'm getting random crashes from win32k when I change the allocation pattern. I have plans to kill the bitmap there too. I contacted a guy called Peter Niemayer who kindly gave me his code for a review to use bitmaps for little sized blocks. Also I have to gather some statistics about how ReactOS allocates frees RAM but maybe I can make it adaptable to prevent a bin from overflowing (I think that I could save that data in the registry, to not have to manually resize bins with each reactos release). I also have to find out how to distribute requests in bins in O(1) time probably using lookup tables or an interpolation polinom. Again just wait, I'm on it. Also I could do some caching in the allocator but I'm still not sure. Another thing, and I won't be touching this at least not nowso if someone wants to, The lookasides are passing allocations directly to the non paged pool, that means that [[now]] using a lookaside list is the same as making a direct request to some of the pools. Another one the paged pool uses lists wich are slow and heaps are implemented like in Win95. I think that I could put or reuse the algorithms in the nonpaged pool to the paged pool. I I have plans for heaps (in wich allocation is a similar problem as in the executive allocator but not exactly the same). I will use a version of hoard (www.hoard.org).
 
Regards
Waldo

________________________________

From: ros-kernel-bounces at reactos.com on behalf of Mike Nordell
Sent: Sun 2/29/2004 1:38 PM
To: ReactOS Kernel List
Subject: Re: ReactOS Speed (was Re: [ros-kernel] Re: atapi with bus master dma)



Filip Navara wrote:

> I have checked the option of disabling the pool checking and it really
> makes a big difference, it's especially visible when you try to drag the
> rebars/splitters...

That generates such a large amount of alloc/free?

Some ideas, however insane:
Could something be done about it, like caching some of the data (without any
severe additional memory added for extended periods of time), or have memory
allocated only once when the user begins the drag operation and released
when it has finished? If problematic, could the memory be allocated within a
ref-counted block, using a timer that, say, each 5 seconds check if it can
be released?

> Currently the two slowest things that make ReactOS
> GUI slugish are the VGA driver and Font Rendering (the glyphs aren't
> cached!).

Heh, that surely could generate a bit of extra CPU-load. ;-)

/Mike

_______________________________________________
Ros-kernel mailing list
Ros-kernel at reactos.com
http://reactos.com/mailman/listinfo/ros-kernel


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/ms-tnef
Size: 6015 bytes
Desc: not available
Url : http://reactos.com:8080/pipermail/ros-kernel/attachments/20040302/bdeb968c/attachment.bin


More information about the Ros-kernel mailing list