Pull to refresh
14
Vladimir Polin@vpolin

User

Send message
Здравствуйте,

Я не юрист и не могу давать юридические советы по использованию или лицензированию.

Но у меня есть вопрос: Вы рассматривали использование версии Intel TBB с открытым кодом? Она доступна по лицензии GPLv2 and for the runtime exception.

И как там написано, если что-то непонятно, то лучше обратиться к своему юристу («Hopefully that text is self-explanatory. If it isn't, you need to speak to your lawyer, or the Free Software Foundation.»)

--Владимир
Кстати, раз у ресь о malloc и альтернативах, предлагаю посмотреть на наш С/С++ аллокатор и автоматическую подмену системного аллокатора. Может будет, о чем поразмышлять.

--Владимир
Чтобы понять, если ли утечка памяти или нет, необходимо в большом цикле повторить выделение/освобождение памяти. Если память потечет — это будет отчетливо видно в диспетчере задач. А то, что аллокатор закэшировал кусок памяти — это ни о чем не говорит. Как было написано, он может использовать этот буфер для выделения маленьких блоков.

Код получится типа такого:
int main(void)
{
	const int blockCount = 1024;
	const int blockSize = 1024*1024;
	char **buf;
	for (int q=0; i<100000; i++)
	{
		buf = (char**)malloc(blockCount*sizeof(char*));
		for (int i=0; i<size; i++)
		{
			buf[i] = (char*)malloc(blockSize*sizeof(char));
		}
		for (int i=0; i<size; i++)
		{
			free(buf[i]);
		}
		free(buf);
	}
	printf("Hit something...\n");
	printf("Memory freed\n");
	getchar();
	return 0;
}


--Владимир

Information

Rating
Does not participate
Registered
Activity