Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

TBB malloc proxy vs include file

norswap
Beginner
304 Views
I'm using tbb malloc in a project and I wondered what the difference was between using the tbb malloc proxy library and using a header file to redefine the standard memory allocation functions. Something like:

void* operator new(size_t sz)
{
void *res = scalable_malloc(sz);

if (res == NULL)
throw std::bad_alloc();

return res;
}

void operator delete(void* ptr) throw()
{
scalable_free(ptr);
}

What are the advantages/drawbacks to both approaches ? Is one superior to the other ?
0 Kudos
1 Solution
Vladimir_P_Intel2
304 Views
Hellonorswap
In your case you will have more control on what should go to scalable allocator and what shouldn't. tbbmalloc proxy redirects _all_ application calls to scallable_malloc. But our implementation of new/delete in proxy is pretty as the same as above one.
tbbmalloc proxy is a great advantage for big projects that you can add one line to one source and get everything working.
--Vladimir

View solution in original post

2 Replies
SergeyKostrov
Valued Contributor II
304 Views
Quoting norswap
...What are the advantages/drawbacks to both approaches ?

Please take a look at a thread:

'Difference between scalable_memory and classic memory allocation'

http://software.intel.com/en-us/forums/showthread.php?t=105401&o=a&s=lr
Vladimir_P_Intel2
305 Views
Hellonorswap
In your case you will have more control on what should go to scalable allocator and what shouldn't. tbbmalloc proxy redirects _all_ application calls to scallable_malloc. But our implementation of new/delete in proxy is pretty as the same as above one.
tbbmalloc proxy is a great advantage for big projects that you can add one line to one source and get everything working.
--Vladimir

View solution in original post

Reply