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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.