Your new() function doesn't appear to do anything that the SVR2 malloc() doesn't, except fail to properly align storage. If the malloc() function in your C library has dismal performance, then fix it so that all programs can benefit.