Прошел месяц
Dec 19, 2016
3 minutes read

Прошел месяц с моего решения ежедневно программировать и так же ежедневно писать. В результате я програмиировал 4.5 дня. Писал немного чаще, но в основном в чукотском стиле (что вижу - то пою). А это уже некоторые цифирки, помогающие мне понять чем я на самом деле занимаюсь, и в какую из труб вылетает все мое время.

Заканчиваю с dbmonster

Прежде чем идти дальше, приду к какому-то законченному варианту с dbmonster. Мне не нравится что выглядит он не так, как остальные dbmonster в сети: толи я накосячил со стилями, то-ли в html, непорядок. Попробую найти проблему.

Ебать же в сраку вашу мать

Сравнил все что мог, мистика, HTML и CSS идентичны, но у чувачков размер фонта поменьше и количество запросов выровнено по вертикали, в отличии от меня. Ебана в рот, оказывается дело в том что у меня нет вот этой прекрасной директивы <!DOCTYPE html>, которая, кто бы мог подумать, имеет значение.

Определенно, Web продвинулся очень далеко с 1999 года, и мне придется многое изучить, ну а мой dbmonster теперь выглядит как все.

Заканчиваю с DOM diff

В общем DOM diff вещь, которая безусловно пригодится но я пока не вижу всей картины. Как должно выглядить полноценное приложение мне совсем не понятно. Как я буду управлять состоянием, на чем буду писать презентацию и ее логику? Будет ли это Nim или собственный язык (если так то будет это компилятор или интерпретатор на Nim). Язык общего назначения или “шаблоны”?

Чтобы закончить на позитивной ноте, решил еще померять скорость того, что есть. Имеется ввиду полный цикл (построение модели, рендер в HTML, diff с предыдущей и применение diff к DOM браузера). Основная просадка по времени была не у меня а в 2-х местах * Реализация random в Nim модуле random жутко медленная. Заменил на модуль mersenne. * Форматирование при выводе float в строку так же съедает большую часть времени, заменил на int в модели.

После этих двух нехитрых изменений:

  • Нативно: Render: 0.3ms, Diff: 0.35ms, Model + Render + Diff: 1ms
  • V8 (node.js v4.1.1): Render: 1.2ms, Diff: 1.8ms, Model + Render + Diff: 4.3ms

Качнул свежак node - v7.3.0, в душе не ебу как у них с версиями и старая ли моя 4.1.1.

  • V8 (node.js v7.3.0): Model + Render + Diff: 4.8ms - эта гавнина еще медленнее, похоже я не умею ее готовить…

Нашел гарную тему: node --v8-options, включаю некий TurboFan --turbo

  • V8 (node.js v7.3.0): Model + Render + Diff: 6.2ms начинаю ржать :).
  • V8 (node.js v7.3.0 –turbo_asm): Model + Render + Diff: 4.3ms походу эта муля была включена в 4.1.1 по умолчанию.

В общем с настройками V8 интересно баловаться, но оставлю на потом.

Посмотреть

Потыкать в dbmonster (200 строк) можно здесь: https://platoff.github.io/dbmonster/200/dbmonster.html. Постмотреть как оно должно быть (с точки зрения производительности) можно здесь: https://platoff.github.io/dbmonster/20/dbmonster.html.

Код здесь: https://github.com/platoff/faxma/tree/day-161219


Назад, к записям


comments powered by Disqus