LINUX.ORG.RU

Самый быстрый миниатюрный веб-сервер, написанный на Lisp'е

 , ,


0

1

Джон Фремлин создал миниатюрный веб-сервер для динамического контента, написанный на Lisp. Результаты тестирования, проведенного автором, были представлены на встрече Tokyo LUG, в соответствии с которыми, производительность и масштабируемость данного веб-сервера оставила позади связку lighttpd+fcgi+php и даже веб-сервер Mongrel, написанный на Ruby.

Что примечательно, сам динамический контент для этого веб-сервера требуется тоже писать на Лиспе. В качестве работоспособного примера был создан персональный блог автора, код которого занимает целых 102 строчки и поддерживает обновление новых записей через AJAX. Этот блог в качестве проверки на прочность уже смог выдержать Slashdot-эффект.

Блог автора

Результаты тестирования

>>> Подробности



Проверено: hibou ()
похапе, руби какие-то, детский сад! где сравнение с Ынтерпрайз java или .Net? Да, и где там про масштабируемость? simple in memory database - оно? Интересное понимание масштабируемости.
cobold ★★★★★
()
камменты руских анонимусов в блоге автора порадовали))))
yoghurt ★★★★★
()
Ответ на: комментарий от renat_gar
Proxy Error

The proxy server received an invalid response from an upstream server. The proxy server could not handle the request GET /.

Reason: Error reading from remote server

Apache/2.2.8 (Ubuntu) mod_fastcgi/2.4.2 PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch Server at john.freml.in Port 80

renat_gar
()
На Слешдоте одни неудачники. :)
medik ★★★
()
Может он ещё и самообучаемый, тот сервер с блогом, и просто свалил куда подальше, где поспокойней и процессорного времени побольше.
Barlog_M
()
Пессимисты пишут сервер на лиспе, оптимисты на эрланге... А реалисты ставят Nginx :)
gns ★★★★★
()
Вот придурки, взяли сайт завалили, лучше microsoft.com досте.
linux4ever
()
Джон Фремлин довыпендривался?
reliktt
()
по прежнему лежит...
mh
()
Ответ на: комментарий от GladAlex
>Нормально открывается

Раза с десятого - русская рулетка
reliktt
()
Ответ на: комментарий от GladAlex
>Нормально открывается: пишите своим провайдерам и проверяйте свои прокси.

Ну ты у нас типо небыдло, у всех неработает, у тебя у одного нормально открываетсо.

linux4ever
()
Ответ на: комментарий от Barlog_M
>Может он ещё и самообучаемый, тот сервер с блогом, и просто свалил куда подальше, где поспокойней и процессорного времени побольше.

Ага. А этот ИИ сейчас срет в каментах на русском.
Pavval ★★★★★
()
Мдя... Как много людей не знают про yaws :)))
DeViL
()
>I was afraid your blog was "slashdotted" earlier. Nice to know you were fixing bugs and that the pages are loading so swiftly, now.

Бугага, слэшдотовцы уже по-русски начали пейсать.

linux4ever
()
открылся со второй попытки
ugoday ★★★★★
()
Джон Фремлин соснул тунца у ЛОРовских анонимусов.
linux4ever
()
Ответ на: комментарий от linux4ever
А что Вас удивило: "slashdotted" itself или was "slashdotted" вместо пуристского "had been slashdotted"?

Впрочем и "were fixing" вместо have fixed тоже вчепетляет. :)

gns ★★★★★
()
коменты без спросу обновляются
xsektorx ★★★
()
Открылся с первой попытки. Я уж было решил поставить на посмотреть, да прочитал комменты здесь и там))))
fractaler ★★★★★
()
симпатичное оформление у блога. Разумный минимализм. Не то что тормозной ЖЖ

VSL таки был прав
DNA_Seq ★★☆☆☆
()
Кстати, аффтар мог бы неплохо денюшек срубить на рекламе
DNA_Seq ★★☆☆☆
()
«hello, i am russian invader. i've just stole a computer from da store,

opened ЛОР n read bout dis supah-fast web server. Man what izzhu doin??7?

go pick some girls, grab a beer or something...»

(:
env ★★☆
()
Ответ на: комментарий от fractaler
>Открылся с первой попытки.

+1

грузится быстрее чем пхпнюк на локалхосте ;)
DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от Manhunt
Честно с первой попытки отправил. Я даже не понял поначалу, отправилось ли оно — так всё быстро!
iZEN ★★★★★
()
где можна сачаать?
baaba ★★★
()
О да, нет выше счастья, чем насрать под дверь соседу. Дети, ей-богу.
wicker
()
М-да, набежала толпа дебилов и загадила весь блог. А потом кто-то удивляется, почему у русских плохая репутация.
Fice ★★
()
Ответ на: комментарий от Fice
Да ладно, пусть развлекаются. Там, как заметил анонимус, все равно предыдущие посты стираются.
madgnu ★★★★★
()
>lighttpd+fcgi+php и даже веб-сервер Mongrel, написанный на Ruby.

И что тут удивительного?
r ★★★★★
()
> lighttpd+fcgi+php

Я прочитал "fghi".

centr-o
()
#!bin/picolisp lib.l
(load "ext.l" "lib/http.l" "lib/xhtml.l")
 (de foo ()
    (html 0 "Hello" NIL NIL
       (ht:Prin "hello " (get 'name 'http)) ) )
 (let (P (port 8080)  H "@foo")
    (setq *Home (cons H (chop H)))
    (loop
       (when (listen P)
          (http @)
          (close @) ) ) )


>(load "ext.l" "lib/http.l" "lib/xhtml.l")
В "развернутом" виде исходник, наверняка, в 100-200 строк не уложился бы ;)
impfp
()
> Этот блог в качестве проверки на прочность уже смог выдержать Slashdot-эффект.

Нихрена, когда вчера по ссылке с /. пытался зайти, ничего не работало.
kmike ★★
()
Ответ на: комментарий от den73
>хотя я не знаю, сколько тредов SBCL держит одновременно.

SBCL держит 32k нативных ниток.

> Также известно, что оптимизированные по скорости приложения на лиспе могут сегфолтиться.

Если они написаны неправильно и у них стоит режим оптимизации (safety 0). Либо если используются внешние либо через FFI (тут никто не застрахован).

dmitry_vk ★★★
()
Ответ на: комментарий от bioreactor
>А на ассемблере?

Вы мне, должно быть, не поверите, но на форте миниатюрнее. Там "шитый код" получается. Он меньше.

kraw ★★★★
()
Ответ на: комментарий от kraw
REQUIRE EMBODY    ~pinka/spf/forthml/index.f
REQUIRE ReadSocket ~ac/lib/win/winsock/sockets.f
REQUIRE STHROW    ~pinka/spf/sthrow.f
REQUIRE Wait      ~pinka/lib/multi/Synchr.f
REQUIRE CreateSem ~pinka/lib/multi/Semaphore.f
REQUIRE CREATE-CS ~pinka/lib/multi/Critical.f
[UNDEFINED] InterlockedIncrement [IF]
WINAPI: InterlockedIncrement KERNEL32.DLL
WINAPI: InterlockedDecrement KERNEL32.DLL
[THEN]
[UNDEFINED] GetCurrentThreadId [IF]
WINAPI: GetCurrentThreadId KERNEL32.DLL
[THEN]
[UNDEFINED] BIND-DNODE-TAIL [IF]
`env.f.xml FIND-FULLNAME2 EMBODY       [THEN]
`lib.f.xml FIND-FULLNAME2 EMBODY
`index.f.xml FIND-FULLNAME2 EMBODY
 SocketsStartup THROW
: run ( -- )
 `701 `localhost tcp-server::assume-listen
 tcp-server::start
;
: BYE  tcp-server::stop 200 PAUSE BYE ;
DISMOUNT DROP \ for sharedlex

М.б. вышло длиннее, из-за того, что под windows :) но все же не "миниатюрнее", чем на шепелявом.
impfp
()
Ответ на: комментарий от impfp
+ в сравнении с асмом, куда уж покороче будет, действительно :)
impfp
()
Кто там про ассемблер говорил? Вы идиоты?? Вроде все на линуксах сидите... наверняка знаете, что есть user spase и kernel space. Написать то можно на асме, но это будет user space, а kernel space с его read/write/kqueue/epoll/gettimeofday/accept/close никто не отменял. Сервер, написанный на асме, ничем быстрее сишного не будет - оба упираются в ядерные вызовы, буфера TCP/IP стека - как ведро настроишь.
funky_dennis
()
А давайте мы вообще будем на асме писать это...
f3ex ★★
()
Поправьте заголовок.

> Самый быстрый миниатюрный веб-сервер, написанный на Lisp'е

Это заголовок к статье о самом быстром миниатюрном веб-сервере из тех, которые написаны на лиспе.

Так будет правильно: Самый быстрый миниатюрный веб-сервер написан на Lisp'е

twoflower
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.