1.4, oneonfire (?), 22:48, 12/04/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
ну а стоит посмотреть на разные библеотеки, во многих BSD лицензия и ничего ведь...
| |
|
2.5, anonimus (?), 22:50, 12/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
так если софтину под Linux будут собирать с jemalloc - то результат (сама софтина) под какой лицензией должен выпускаться?
| |
|
|
4.7, anonimus (?), 23:11, 12/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>Под той, под которой удобно автору софтины.
Так вроде бы если дополнять и изменять GPL-ый софт, то лицензию нельзя менять...?
| |
|
5.8, Аноним (-), 23:19, 12/04/2010 [^] [^^] [^^^] [ответить]
| +3 +/– |
Ты же не библиотеку меняешь, а софт который её использует, это же разные вещи.
| |
|
|
|
|
1.11, pavlinux (ok), 03:16, 13/04/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Балин... Зачотная вещь!!!
pavel@suse64:~/> gcc -g0 -O3 -march=native main.c -ljemalloc
pavel@suse64:~/> time ./a.out
real 0m0.379s
user 0m0.079s
sys 0m0.299s
pavel@suse64:~/> gcc -g0 -O3 -march=native main.c
pavel@suse64:~/> time ./a.out
real 0m1.077s
user 0m0.292s
sys 0m0.780s
#include <stdio.h>
#include <stdlib.h>
#include <jemalloc/jemalloc.h>
#define SZ 0xFFFF
int main(void)
{
int i;
int **ARRAY = (int **) malloc(SZ * sizeof(int *));
for (i = 0; i < SZ; i++) {
if (i % 2) {
ARRAY[i] = (int *) malloc(i);
*ARRAY[i] = i;
continue;
}
if (i % 3) {
ARRAY[i] = (int *) calloc(1, i);
*ARRAY[i] = i;
continue;
}
ARRAY[i] = (int *) realloc(ARRAY[i], i);
*ARRAY[i] = i;
}
for (i = 0; i < SZ; i++) {
free(ARRAY[i]);
ARRAY[i] = NULL;
}
free(*ARRAY);
return 0;
}
| |
|
2.36, Вова (?), 11:05, 14/04/2010 [^] [^^] [^^^] [ответить] | +/– | надо сравнивать time a out и time LD_PRELOAD usr local lib libjemalloc... большой текст свёрнут, показать | |
|
3.41, pavlinux (ok), 03:13, 15/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>надо сравнивать
А #include <jemalloc/jemalloc.h> для чего придумали? ;)
> $ time ./a.out
>и
> $ time LD_PRELOAD=/usr/local/lib/libjemalloc.so ./a.out
>
>/* gcc memtest.c -lrt */
А на кой хрен нужна -lrt, и где -pthread (или -lpthread) ? :)
| |
|
4.42, Вова (?), 09:46, 15/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>А #include <jemalloc/jemalloc.h> для чего придумали? ;)
Не "придумали", а "павлинукс придумал".
Твой инклюд - бессмысленен, как и однопоточный тест.
сравни
LD_PRELOAD=/usr/local/lib/libjemalloc.so ldd ./a.out
и просто
ldd ./a.out
Детсад, честное слово.
jemalloc рвёт стандартный аллокатор как тузик грелку, на многопоточных задачах, разумеется. На реальных задачах. Не на твоих тестах.
| |
|
5.44, pavlinux (ok), 23:38, 15/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>>А #include <jemalloc/jemalloc.h> для чего придумали? ;)
>Не "придумали", а "павлинукс придумал".
make install запусти увидишь, как я придумал.
>Твой инклюд - бессмысленен, как и однопоточный тест. сравни
Да нипёт, я создал ситуацию когда этот Джемаллок тормозит на 20%
Создам и мультитредовую версию, где будет тормозить на 30%
> jemalloc рвёт стандартный аллокатор как тузик грелку,
Подавился этот jemalloc, даже одной грелкой.
--------
Я то думаю, чёйта он тут выпендривается...
А оказывается скопипастил бенчмарк
http://www.citi.umich.edu/projects/linux-scalability/reports/malloc.html
| |
|
6.45, Вова (?), 10:02, 16/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>make install запусти увидишь, как я придумал.
Заголовочные файлы, дружок, описывают мплементированные в соответствующих библиотеках функции и необходимые для работы с ними типы данных, и в данном случае это перечень имплементированных стандартных маллок'ов. Его подключение - бессмысленно.
>Да нипёт, я создал ситуацию когда этот Джемаллок тормозит на 20%
И не создал, и не на двадцать и не тормозит. И не в спортлото выиграл, а в карты проиграл (с) другой клоун
>Создам и мультитредовую версию, где будет тормозить на 30%
Да когда тебе, школьные каникулы-то не вечные.
В течении пары лет либо 1) все дистрибутивы будут содержать глобальное выставление LD_PRELOAD=...jemalloc.so (либо другой) либо 2) глибс будет содержать этот аллокатор
>--------
>Я то думаю, чёйта он тут выпендривается...
>А оказывается скопипастил бенчмарк
>
>http://www.citi.umich.edu/projects/linux-scalability/reports/malloc.html
Ага, создают потоки той же функцией, вот так копипаст, прямо один-в-один!
| |
|
7.47, Вова (?), 09:20, 07/05/2010 [^] [^^] [^^^] [ответить]
| +/– |
> В течении пары лет либо 1) все дистрибутивы
>будут содержать глобальное выставление LD_PRELOAD=...jemalloc.so (либо другой) либо 2) глибс будет
>содержать этот аллокатор
не прошло и месяца:
http://sourceware.org/git/?p=glibc.git;a=blob_plain;f=NEWS;hb=HEAD
* The malloc implementation can be compiled to be less memory efficient
but higher performing in multi-threaded programs.
Implemented by Ulrich Drepper.
| |
|
|
|
|
|
|
1.16, cvsup (ok), 09:22, 13/04/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Забыли упомянуть, что в последние год-два jasone трудился под флагманом Фейсбука,
о чем красночериво говорят копирайты. jasone, возвращайся, ты нам нужен :)
| |
1.18, sluge (ok), 10:05, 13/04/2010 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
надо делать так чтобы glibc и другие стандартные биб-ки тоже его юзали-вот что даст настоящий прирост перфоманса
| |
|
2.19, Andrey Mitrofanov (?), 10:38, 13/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>надо делать так чтобы glibc и другие стандартные биб-ки тоже его юзали-вот
>что даст настоящий прирост перфоманса
Не нало -- это к Дрепперу. Не даст и не настоящий -- к павлинуксу тремя постами выше. Не в спортлотто, а в карты....
| |
|
|
|
5.30, Аноним (-), 16:50, 13/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>Ой, извините, да, на этой недели Анонимы@опеннет ещё glibc не форкали===
Ясно. КСВ. Сороковник стукнул, жена ушла, дочка беременная а квартира одна "распашонка" на весь колхоз? То то ты грустен в последних пару месяцев. Не растраивайся - будет хуже! :) Главное - не удавись втихую, а то senior арлекинов в этой местности - днём с огнём ...
| |
|
|
|
2.35, Вова (?), 10:59, 14/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>надо делать так чтобы glibc и другие стандартные биб-ки тоже его юзали-вот
>что даст настоящий прирост перфоманса
в данный момент достаточно и LD_PRELOAD, а в следующие версии glibc, несомненно, этот (или подобный) аллокатор - войдёт.
| |
|
|
2.24, sluge (ok), 12:50, 13/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>Так вооот почему третья лиса течет памятью как сито...
мож плугины текут?
| |
|
3.39, Sem (??), 12:44, 14/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>>Так вооот почему третья лиса течет памятью как сито...
>
>мож плугины текут?
Да это мозг течет. Видимо спутал аллокатор с GC.
| |
|
2.31, Ы (?), 16:56, 13/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>Так вооот почему третья лиса течет памятью как сито...
У лисы это родовое - фирменная фича тсссказать.
Без jemalloc'a ея бы уже просто закопали, а так ещё хоть как то умудряется ползать. Но не (краснея) не хром же или (с ужасом) оперу юзать! Вон яблоки переделывают вебкит "чтоб как в хрому" похоже и лиса пойдёт той же тропинкой ...
| |
|
|
2.43, Вова (?), 09:56, 15/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>Интересно будет ли профит если Qt-embedded for ARM собрать с этой библиотекой?
>
не надо пересобирать, необходимо только лишь задать LD_PRELOAD перед запуском приложения.
Впрочем, этот аллокатор ни под арм, ни под мипсы не компилируется,в сырцах используется ассемблерная вставка (команда "pause"), аналогов этой команды под встроенные системы сходу не обнаружил, подменил на "nop" - получил сегфалт при старте. Нужно советоваться с отцами.
| |
|
1.27, VoDA (ok), 14:36, 13/04/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
и что только люди не делают чтобы не применять управляемую память =)
| |
1.28, Anon (?), 16:15, 13/04/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Забыли написать о том, что этот аллокатор сливает гугловому ptmalloc'у
| |
|
2.32, Diogene the Open Source programmer (?), 16:59, 13/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>Забыли написать о том, что этот аллокатор сливает гугловому ptmalloc'у
Ты забыл указать на каких задачах. jemalloc - общесистемный, во фряхе начиная с 7, ptmalloc - вещь нишевая ...
| |
2.46, Sem (??), 14:23, 16/04/2010 [^] [^^] [^^^] [ответить]
| +/– |
>Забыли написать о том, что этот аллокатор сливает гугловому ptmalloc'у
Какое отношение ptmalloc имеет к гуглу? Может перепутал с tcmalloc?
| |
|
|