avva: (Default)
[personal profile] avva
Любопытная попытка написать супер-оптимизированный HTTP request/response parser. Намерения самые добрые, но... мне кажется, в этом небольшом модуле я смог бы набрать материала на часовую лекцию о том, когда не надо оптимизировать и как не надо.

Даже проглядев его вскользь, я вижу несколько мест, где на первый взгляд очень эффективный подход на самом деле даст относительно медленный код, который легко можно улучшить; а также заодно и место, где есть потенциальный buffer overflow. Утверждение автора, что его модуль "...is nearly optimal in its use of CPU instructions", конечно, слишком оптимистично. Но главное - почти наверняка выбранная модель общения с клиентом, через колбэки, на практике приведет к большим потерям времени и эффективности, чем столь тщательно сынженированные ручные подгонки под названия HTTP-методов, или отсутствие malloc()-ов.

Меж тем проект, ради которого это затеяно, Node.js (быстрый V8-джаваскрипт на сервере), весьма интересен.

Date: 2009-12-01 08:52 pm (UTC)
stas: (Default)
From: [personal profile] stas
Я так думаю, что "все" знают Джаваскрипт, который нужен, чтобы кнопочки в браузере передвигать. А, скажем, как по-настоящему устроен ОО на Джаваскрипте, знают уже далеко не "все".

Date: 2009-12-01 09:17 pm (UTC)
From: [identity profile] avva.livejournal.com
Но на то и есть добрый дедушка наш Крофорд.

Date: 2009-12-02 02:38 am (UTC)
From: [identity profile] meshko.livejournal.com
Совершенно верно. Мной пару лет назад заткнули дыру в проекте с средних размеров веб приложением. Я там сделал несколько довольно больших кусков на Джаваскрипте. Пару раз казалось, что надо сделать ОО, но я решил, что я лучше все засуну в несколько вложенных списков и назову это функиональным программированием. Так что все обошлось -- проект доделал, Джаваскрипт не выучил.

January 2026

S M T W T F S
    1 2 3
4 5678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 06:08 pm
Powered by Dreamwidth Studios