![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Iron Bug |
![]()
Сообщение
#1
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Хочу представить вам библиотеку, с которой я познакомилась на новой работе: ACE.
Я, конечно, сразу решила провести тестирование новой для меня библиотеки и сравнить её с boost. Я сравнивала эфффективность работы ACE_Cached_Allocator и boost::pool: замеряла время, требуемое на заполнение пула элементами и очистку пула (по одному элементу). Я написала тест сравнения работы с пулами памяти. И результат меня поразил: ACE не только быстрее буста, но и эффективнее использует память! Если интересно, вот тест, который я написала (тест под линь, венды у меня сейчас просто нет в наличии, но можно его быстро перекроить под венду, если заменить блок с установкой риалтайм приоритета у потока), Раскрывающийся текст
То есть, по памяти boost занял 1928499200 байт, а ACE - всего 854814720 байт. Я позже приведу данные, их сейчас нет под рукой - забыла на работе, взяла не те данные ![]() Но по памяти выигрыш был в 2.25 раза, а по скорости, при профилированной оптимизации, скорость увеличивалась от 0.6 до 0.8. Я ещё буду тестировать ACE, ибо меня интересует выбор самой оптимальной библиотеки для работы. Но этот результат меня удивил и неожиданно поколебал мою приверженность к boost'у. Поэтому я решила написать об этом здесь. Может, кто-то проверит тест под вендой: было бы интересно узнать результаты. Правда, я не знаю, как под вендой измерять максимум используемой памяти. Но хотя бы скорость можно сравнить. Сообщение отредактировал Iron Bug - 19.12.2013, 19:44 |
|
|
![]() |
Iron Bug |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Протестировала дома, на линюксе (с работы результаты взяла не те - они исказились valgrind'ом).
Вот результаты после оптимизации с профилями: Раскрывающийся текст Цитата bla-bla-bla$ sudo ./TestPool 1 1000000 2 99 15715733 nanoseconds 3606376 nanoseconds bla-bla-bla$ sudo ./TestPool 2 1000000 2 99 11209115 nanoseconds 4830111 nanoseconds Первый запуск - это boost, второй запуск - ACE. Дома тестировала на ноуте, под Дебианом. ноут слабенький, поэтому пришлось взять небольшое количество элементов. а на более мощном компе на работе с бОльшим количеством разница получалась ещё более существенная, в пользу ACE. По памяти вышло 41254912 байта для буста и 32952320 - для ACE. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.4.2025, 5:02 |