«

»

Авг 24 2013

Переработал пул сообщений в CSO

В рамках подготовки к релизу CFW 0.2 проводил провожу переработку CSO. Во время выделения глобального пула сообщений в отдельный файл решил попробовать переписать его на asm`е. Сам по себе пул вроде не сложный, так что по идеи компилятор должен выдавать более-менее приличный код.

Простейший тест в котором каждый поток сначала выделял, а потом освобождал 32768 сообщений показал следующее (кол-во пар выделение+основбождение в млн. в секунду):

1 поток 2 потока 3 потока 4 потока 5 потоков 6 потоков
Реализация на Pascal 17.38 40.98 54.78 72.31 78.83 86.22
Реализация на Asm 20.57 47.25 75.06 91.21 106.11 109.08
Ускорение от перехода на Asm +18.4% +15.3% +37% +26.1% +34.6% +26.5%

Переход на Asm даёт выигрыш от 15.3% до 37%, т.е. в среднем получает где-то 25%.

Добавить комментарий