Обновление SBCL 1.0.45 в lisp-репизотрии для Ubuntu и Debian.
суббота, 11 декабря 2010 г.
вторник, 7 декабря 2010 г.
эхо-сервер и 15000 запросов в секунду
В своём прошлом посте я жаловался на быстродействие казалось бы тривиального эхо-сервера. При разборе archimag'овского сервера с 10000 запросами в секунду обратил внимание, что он использует пул буферов чтения-записи. Собственно, идея то не нова, но скопипащенный ex8-server.lisp из IOLIB тогда почему-то не привлёк моё внимание отсутствием пула. Добавление его убыстрило эхо-сервер более, чем в 10 раз. На моём стареньком ноуте он теперь обрабатывает порядка 15000 запросов в секунду против 1200. На другой машинке (Core i5 с пониженной частотой при множителе 13, где-то около 1200 ГГц) порядка 35000-40000 запросов в секунду. Также стоит отметить, что эхо-сервер не сбрасывает сам соединение, а держит сеанс. В противном случае могло бы быть ещё быстрее.
суббота, 4 декабря 2010 г.
iolib и эхо-сервер
Недавно тут озаботился написанием tcp-сервера. Эксперименты решил начать с простого эхо-сервера. Да и в примерах iolib'ов он был. Ну, значит, запустил я его и решил испытать на стрессовые нагрузки. Для этого я использовал тулзу jmeter. Так вот, что выяснилось. При даже 100 параллельных запросах не все доходит правильно до клиента. И где-то 2% теряется (на моей машине). Вариант эхо-сервера, написанного на C, который я взял в том же iolib - на 100 обходится без ошибок. Правда на 1000 уже где-то 1% появляется. Вариант с использованием IOLIB - 10%. И вот меня тут смутило немного - а правильно ли я вообще понимаю всё? И неужели простому эхо-серверу так сильно становится плохо? Быстро накиданный вариант на java, который выделяет отдельные потоки на клиента - вообще 97% ошибок показал. С java.nio (асинхронная модель) не пробовал, потому как к этому времени уже изрядно расстроился.
среда, 1 декабря 2010 г.
понедельник, 29 ноября 2010 г.
Обновление REPO 20101129
Очередное пополение в lisp-репизотрии для Ubuntu и Debian. Какие-то библиотеки обновились, какие-то появились:
- alexandria;
- cffi;
- trivial-features;
- bordeaux-threads;
- fiveam;
- arnesi;
- trivial-garbage.
Большинство из них собиралось для удовлетворения зависимостей к iolib. Обновление было произведено на последние релизные версии. В связи с этим вопрос - у этих библиотечек что-нибудь требуется ну очень свежее?
среда, 17 ноября 2010 г.
SBCL 1.0.44
Пока я спал, вышла новая версия SBCL. Я даже как-то умудрился пропустить одну. Но это не помешало собрать последнюю. :)
Обновление SBCL 1.0.44 в lisp-репизотрии для Ubuntu и Debian.
четверг, 28 октября 2010 г.
CLISP 2.49
Холодным осенним вечером делать было нечего, поэтому собрал свежую версию CLISP'а и выложил его в lisp-репизотрии для Ubuntu и Debian. В силу некоторых особенностей модуль clisp-module-berkley-db для 32-битной системы собран с зависимостью на libdb4.6, а для 64-битной системы - на libdb4.8. В остальном отличий нет. В отличие от оригинального пакета Debian, собран без зависимости и без использования CLC (Common Lisp Controller), согласно идеологии репозитория, поэтому для кого это критично - нужно будет задуматься. А в целом, свежачок. :)