Некоторое время назад ко мне в руки попал компьютер на базе Intel XEON D-1540 с поддержкой расширения TSX. Я давно уже хотел устроить хотя бы небольшое тестирование этого расширения, т.к. оно выглядит крайне интересно. Причём интерес вызывает как “бесплатная оптимизация” многопоточных приложения через HLE-префиксы (тем более что она не ломает обратную совместимость кода), так и …
Архив по этикетке: Benchmark
Май 16 2014
Оптимизация кода компилятором FreePascal`я
Мы все привыкли слышать о том, что Pascal медленнее C от 2-х до 5-ти раз. Это мнение глубоко укоренилось в головах большей части людей. Однако это не совсем так. Во первых корректно сравнивать конкретные компиляторы, а не языки в целом (т.к. у обоих языком компиляторов хватает). Во вторых в подавляющем большинстве тестов которые я видел …
Дек 05 2013
R&D-проект по сжатию общего назначения закончен
Некоторое время назад встал вопрос о необходимости библиотеки для сжатия assert`ов в движке. На тот момент для этих целей использовалась библиотека LZO (к слову, единственная используемая мной сторонняя библиотека), однако из-за её GPL-лицензии надо было или покупать её pro-версию, или менять на что-то другое (возможно даже своё). Кроме того, давно назревал вопрос о целесообразности использования …
Ноя 27 2012
Тестирование скорости обработки сообщений в CatServerObjects
Разработка CSO медленно, но уверенно продвигается к своему логическому завершению. И если изначально CSO задумывалась как библиотека для реализации многопоточного асинхронного TCP-сервера, то в процессе разработки она трансформировалась в библиотеку многопоточной асинхронной обработки сообщений с поддержкой работы с файловыми дескрипторами (в том числе со специальными классами для реализации TCP-сервера). Классы связанные с TCP-соединениями и таймера …
Ноя 09 2012
Сравнительное тестирование механизмов передачи сообщений в Linux
При переработке CatServerObjects столкнулся с необходимостью выбора механизма передачи сообщений между потоками приложения. Для требуемой очереди были сформированы следующие требования: FIFO порядок обработки Поддержка сообщений различных размеров, но с возможностью наличия верхней границы Поддержка блокировки потока на время ожидания данных Поддержка работы с EPoll