Сообщение Re[2]: c++11 быстрый делегат от 17.07.2017 15:27
Изменено 17.07.2017 15:27 Barbar1an
Re[2]: c++11 быстрый делегат
Здравствуйте, Barbar1an, Вы писали:
B>похоже я погорячился, там при создании память выделяется поэтому этот вариант делегатов сильно тормознее по сравнению с оригиналом
в общем вот бенчмарки
FastDelegate ctor: 0.001089
C++14 Delegate ctor (my adaptive allocator): 0.012582
C++14 Delegate ctor (new allocator): 0.207923
FastDelegate call: 0.083223
C++14 Delegate call (my adaptive allocator): 0.084994
C++14 Delegate call (new allocator): 0.083777
из них видно что время создания у с++14 с вы делением памяти через new ужасно долгое
я сделал умнее, но все равно в 12 раз медленнее оригинала(умнее значит что мы храним 8 байт которые использем для хранения данных если они помещаются или для хранения указателя на память в куче)
скорость вызова везде похожая
B>похоже я погорячился, там при создании память выделяется поэтому этот вариант делегатов сильно тормознее по сравнению с оригиналом
в общем вот бенчмарки
FastDelegate ctor: 0.001089
C++14 Delegate ctor (my adaptive allocator): 0.012582
C++14 Delegate ctor (new allocator): 0.207923
FastDelegate call: 0.083223
C++14 Delegate call (my adaptive allocator): 0.084994
C++14 Delegate call (new allocator): 0.083777
из них видно что время создания у с++14 с вы делением памяти через new ужасно долгое
я сделал умнее, но все равно в 12 раз медленнее оригинала(умнее значит что мы храним 8 байт которые использем для хранения данных если они помещаются или для хранения указателя на память в куче)
скорость вызова везде похожая
Re[2]: c++11 быстрый делегат
Здравствуйте, Barbar1an, Вы писали:
B>похоже я погорячился, там при создании память выделяется поэтому этот вариант делегатов сильно тормознее по сравнению с оригиналом
в общем вот бенчмарки
FastDelegate ctor: 0.001089 (не поддерживает лямбды)
C++14 Delegate ctor (my adaptive allocator): 0.012582
C++14 Delegate ctor (new allocator): 0.207923
FastDelegate call: 0.083223 (не поддерживает лямбды)
C++14 Delegate call (my adaptive allocator): 0.084994
C++14 Delegate call (new allocator): 0.083777
из них видно что время создания у с++14 с вы делением памяти через new ужасно долгое
я сделал умнее, но все равно в 12 раз медленнее оригинала(умнее значит что мы храним 8 байт которые использем для хранения данных если они помещаются или для хранения указателя на память в куче)
скорость вызова везде похожая
B>похоже я погорячился, там при создании память выделяется поэтому этот вариант делегатов сильно тормознее по сравнению с оригиналом
в общем вот бенчмарки
FastDelegate ctor: 0.001089 (не поддерживает лямбды)
C++14 Delegate ctor (my adaptive allocator): 0.012582
C++14 Delegate ctor (new allocator): 0.207923
FastDelegate call: 0.083223 (не поддерживает лямбды)
C++14 Delegate call (my adaptive allocator): 0.084994
C++14 Delegate call (new allocator): 0.083777
из них видно что время создания у с++14 с вы делением памяти через new ужасно долгое
я сделал умнее, но все равно в 12 раз медленнее оригинала(умнее значит что мы храним 8 байт которые использем для хранения данных если они помещаются или для хранения указателя на память в куче)
скорость вызова везде похожая