28. Структура vs функция
fest:forearch for(i = 0; i < l; i++) {}
fest:if if(value) {}
fest:choose if(value) {} else {}
fest:set set[name] = function
set[name] = function
53. Реальные пользователи
30 часов одно ядро 2.2 ГГц Xeon
10 000 000+ хитов
1.6ms среднее время трансформации
992 422 10% между 2 и 5ms
208 464 2% между 5 и 10ms
396 49 0,4% больше 10ms
function template(json){ var html = ""; html += "<html>…"; html += json.value; return html; }
Картинка со списком писем
200 ms
3 ms
fest:forearch for(i = 0; i < l; i++) {} fest:if if(value) {} fest:choose if(value) {} else {} fest:set set[name] = function set[name] = function
<span> html += "<span>"; mail.ru html += "mail.ru"; </span> html += "</span>";
<span> html += "<span>"; mail.ru html += "mail.ru"; </span> html += "</span>"; html += "<span>mail.ru</span>";
30 часов одно ядро 2.2 ГГц Xeon 10 000 000+ хитов 1.6ms среднее время трансформации 992 422 10% между 2 и 5ms 208 464 2% между 5 и 10ms 396 49 0,4% больше 10ms
Продакшен, главная
50% x3
65+100=165кб
RB lite v8 lite
html += "foo"; html += rb(id); html += "bar";
html += "foo"; push_string("foo"); html += rb(id); push_rb(id); html += "bar"; push_string("bar");
50% x2
440 000 000
440 000 000 110 000 000
Графики с rss и la
Данные на февраль 2012 года Размер HTML, который генерирует v8 65кб . Время, работы v8 на запрос 1ms . В среднем v8 требует 40MB на контекст.
Пол года спустя Ни одной утечки памяти Ни одного падения v8 Touch главная Touch почта
Проблемы v8
http://sysoev.ru/prog/v8.html
График утечек памяти
— http://code.google.com/p/v8/ — https://github.com/mailru/fest — http://sysoev.ru/prog/v8.html Андрей Сумин, [email_address]