Again, you understand the example they give actually works better with the old system, rather then with the new system right???
One has to admire such bloody-mindedness as yours. Okay, so the extreme example chosen to illustrate fragmentation doesn't show the advantages of slab allocators and objects caches, but that's no reason to dismiss the concepts.
But let's go with bloody-mindedness for now.
The pattern of memory allocation and de-allocations as chosen in that example wouldn't happen in the real world. But let's assume they did. You say the original AmigaOS allocation scheme would work better. How so? Let's assume that the allocations are done with AllocMem and that AllocMem and friends offer the same alignment on OS4.0 that they did on earlier versions of AmigaOS. Then the old system and the slab allocator would perform roughly equally. And neither system would fail allocating the 2-byte blocks, since all allocations are done in multiples of 4 bytes anyway. I suppose you mean the new system performs worse since the slab system has a greater storage overhead involved somewhere. However, since the implementation details haven't been made available, we don't know what this overhead might be. Remember, an old-style free list containing every other 4-byte block is already considerable overhead.
Now let's consider allocations done with AllocVec. With the object-caching system proposed, it's no longer necessary to store the length of an allocation before each memory block. For small allocations such as these, the length of the block can be a property of an object cache. Surely now, even considering such a pathological case as the example you're making such as fuss about, the new system potentially performs much better since it has much less overhead per allocation.
In the real world, the memory system in OS4.0 provides 8-byte alignment for the PPC's FPU (Or is it 16 bytes, as required by AltiVec? I'm not clear on this). Assuming 8-byte alignment, then old and new are roughly equally again in terms of memory usage. But that's a function of the new alignment of allocations - not the fact that OS4.0 uses a slab allocator and object-caching.
In the real world, the simple fact is that the slab system is in general much faster than the old system because there's no need to walk the (potentially arbitrarily long) free memory list every time you want to perform an allocation.
Cheers,
Rich