uclibc vs glibc - сравниваем потребление памяти (ram)

Используем пакеты, расширяющие возможности оборудования
Аватара пользователя
TheBB
Сообщения: 63
Зарегистрирован: 31 авг 2015, 01:24
Откуда: 26 ~44.09,43.02

Сообщение TheBB » 12 июл 2016, 16:45

Код: Выделить всё

  ~ # bw_mem -W 3 -N 50 16M rdwr
__omni2_glibc   16.00 223.79
_omni2_uclibc   16.00 223.37
_ultra2_glibc   16.00 335.80
ultra2_uclibc   16.00 337.18
  ~ # bw_mem -W 3 -N 50 16M cp
__omni2_glibc   16.00 134.12
_omni2_uclibc   16.00 132.78
_ultra2_glibc   16.00 138.58
ultra2_uclibc   16.00 138.55
  ~ # bw_mem -W 3 -N 50 16M fcp
__omni2_glibc   16.00 113.38
_omni2_uclibc   16.00 112.78
_ultra2_glibc   16.00 113.87
ultra2_uclibc   16.00 117.62
  ~ # bw_mem -W 3 -N 50 16M bcopy
__omni2_glibc   16.00 115.32
_omni2_uclibc   16.00 107.54
_ultra2_glibc   16.00 114.58
ultra2_uclibc   16.00 144.09
  ~ #

libc-bench от 2014

Код: Выделить всё

~ # libc-bench
  b_malloc_sparse (0)
_omni2__glibc  time: 9.162431731, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 25.430976305, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.086189308, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.111558111, virt: 0, res: 0, dirty: 0
  
  b_malloc_bubble (0)
_omni2__glibc  time: 9.521145601, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 21.752467190, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.085840748, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.114529825, virt: 0, res: 0, dirty: 0
  
  b_malloc_tiny1 (0)
_omni2__glibc  time: 0.015831206, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.013365000, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.010111507, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.010838334, virt: 0, res: 0, dirty: 0
  
  b_malloc_tiny2 (0)
_omni2__glibc  time: 0.009743606, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.009708369, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.007608107, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.007305437, virt: 0, res: 0, dirty: 0
  
  b_malloc_big1 (0)
_omni2__glibc  time: 0.029731148, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.033868183, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.018805981, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.030539912, virt: 0, res: 0, dirty: 0
  
  b_malloc_big2 (0)
_omni2__glibc  time: 0.029235611, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.029656017, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.015759685, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.019414568, virt: 0, res: 0, dirty: 0
  
  b_malloc_thread_stress (0)
_omni2__glibc  time: 0.289381362, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.277247466, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.146969293, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.230685813, virt: 0, res: 0, dirty: 0
  
  b_malloc_thread_local (0)
_omni2__glibc  time: 0.263704820, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 1.016014448, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.166980616, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.227288623, virt: 0, res: 0, dirty: 0
  
  b_string_strstr ("abcdefghijklmnopqrstuvwxyz")
_omni2__glibc  time: 0.397080879, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 1.730294152, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.167311063, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.245385626, virt: 0, res: 0, dirty: 0
  
  b_string_strstr ("azbycxdwevfugthsirjqkplomn")
_omni2__glibc  time: 0.540713262, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 1.119418366, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.314259568, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.243390245, virt: 0, res: 0, dirty: 0
  
  b_string_strstr ("aaaaaaaaaaaaaacccccccccccc")
_omni2__glibc  time: 0.394861125, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 1.395840534, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.280495027, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.648953668, virt: 0, res: 0, dirty: 0
  
  b_string_strstr ("aaaaaaaaaaaaaaaaaaaaaaaaac")
_omni2__glibc  time: 0.220976159, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 2.762415579, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.162832819, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 1.521892718, virt: 0, res: 0, dirty: 0
  
  b_string_strstr ("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac")
_omni2__glibc  time: 0.211547603, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 4.246522884, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.178377823, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 2.405439712, virt: 0, res: 0, dirty: 0
  
  b_string_memset (0)
_omni2__glibc  time: 0.205643038, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.205854948, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.164297822, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.163611820, virt: 0, res: 0, dirty: 0
  
  b_string_strchr (0)
_omni2__glibc  time: 0.505996304, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.507083897, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.478278657, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.474684242, virt: 0, res: 0, dirty: 0
  
  b_string_strlen (0)
_omni2__glibc  time: 0.394595683, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.348593114, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.399470700, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.364412657, virt: 0, res: 0, dirty: 0
  
  b_pthread_createjoin_serial1 (0)
_omni2__glibc  time: 0.603488080, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.163355542, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.189009776, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.160741900, virt: 0, res: 0, dirty: 0
  
  b_pthread_createjoin_serial2 (0)
_omni2__glibc  time: 0.991970503, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.323174627, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.460629285, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.306678431, virt: 0, res: 0, dirty: 0
  
  b_pthread_create_serial1 (0)
_omni2__glibc  time: 0.407804645, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.225941279, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.190766148, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.204281895, virt: 0, res: 0, dirty: 0
  
  b_pthread_uselesslock (0)
_omni2__glibc  time: 0.235504207, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.215378728, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.250015489, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.210460711, virt: 0, res: 0, dirty: 0
  
  b_pthread_createjoin_minimal1 (0)
_omni2__glibc  time: 0.599059328, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.162412306, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.183768705, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.157896677, virt: 0, res: 0, dirty: 0
  
  b_pthread_createjoin_minimal2 (0)
_omni2__glibc  time: 0.963440148, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.330260983, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.408256879, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.200982627, virt: 0, res: 0, dirty: 0
  
  b_utf8_bigbuf (0)
_omni2__glibc  time: 0.588298117, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.571800235, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.404332396, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.376954698, virt: 0, res: 0, dirty: 0
  
  b_utf8_onebyone (0)
_omni2__glibc  time: 2.325616331, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 1.402093369, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 1.323840402, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.716185420, virt: 0, res: 0, dirty: 0
  
  b_stdio_putcgetc (0)
_omni2__glibc  time: 2.011232725, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 1.916763400, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 2.007161873, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 1.887466372, virt: 0, res: 0, dirty: 0
  
  b_stdio_putcgetc_unlocked (0)
_omni2__glibc  time: 0.235367948, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.237348255, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.168156368, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.169739879, virt: 0, res: 0, dirty: 0
  
  b_regex_compile ("(a|b|c)*d*b")
_omni2__glibc  time: 0.120930269, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.012676607, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.085979465, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.006419588, virt: 0, res: 0, dirty: 0
  
  b_regex_search ("(a|b|c)*d*b")
_omni2__glibc  time: 0.037541548, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 0.010362296, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.020164136, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 0.008540207, virt: 0, res: 0, dirty: 0
  
  b_regex_search ("a{25}b")
_omni2__glibc  time: 0.804167673, virt: 0, res: 0, dirty: 0
_omni2_uclibc  time: 1.591256441, virt: 0, res: 0, dirty: 0
ultra2__glibc  time: 0.518240490, virt: 0, res: 0, dirty: 0
ultra2_uclibc  time: 1.087297616, virt: 0, res: 0, dirty: 0
  
  ~ #
Keenetic Giga II NDMSv.2.06/2.09 + Entware-Keenetic/Entware-ng-3x&Gentoo; Keenetic DSL NDMSv.2.05/2.08 + Entware-Keenetic/Entware-ng-3x&Debian

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1211
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 29 июл 2016, 08:07

А вот совершенно не синтетический тест. У меня он реально так используется. Роутер Keenetic Extra. Запущены dropbear и openvpn.
1. Uclibc (сразу после загрузки)
uclibc1.png

Код: Выделить всё

             total       used       free     shared    buffers     cached
Mem:        126652      63632      63020          0       8700      24452
-/+ buffers/cache:      30480      96172
Swap:       524284          0     524284

2. Glibc
glib1.png

Код: Выделить всё

             total       used       free     shared    buffers     cached
Mem:        126652      63612      63040          0       7384      25904
-/+ buffers/cache:      30324      96328
Swap:            0          0          0
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1211
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 30 июл 2016, 07:32

Меня предыдущее сравнение самого удивило. Считал, что на 1-1.5 мегабайта в случае с glibc потребление памяти будет все таки больше. Но эта разница почти не будет зависеть от числа от числа запущенных приложений Entware.
Обратил внимание, что в случае с uclibc использовался swap. Задал swap и для glibc. Потребление памяти, которую показывает web морда, не изменилось, а free показал на 600k больше чем в предыдущем варианте. На этом небольшое исследование считаю законченным.
Вывод - нет принципиальной разницы между uclibc и glibc с точки зрения потребления памяти (RAM).


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 0 посетителей :: 0 зарегистрированных, 0 скрытых и 0 гостей (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей