Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 29.10.2012, 21:53
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от tenshi Посмотреть сообщение
я и не юзаю) но ты тратишь своё время впустую
Я так не думаю, либа решает мои проблемы и решает как я хочу, к тому же я пишу её почти столько же, сколько пишу на ЖС и каждая версия тренит мои скилы и знания (в итоге я получаю за свою работу кучу бабла, и могу хоть завтра пойти и купить себе новенький мерседес, чем не профит?) + я тупо получаю от этого кайф.

Сообщение от tenshi Посмотреть сообщение
вот именно что, фича для галочки. тонны кода, а как сделать банальное - выбрать записи со значением поля "';DROP TABLE users" я так и не нашёл.
Интерпретатор весит очень мало, килобайта 4. DROP делать нет смысла, для этого есть специальный метод.
Интепретатор призван заменить цепочки .get().group().stat().sort().get() и т.д. в один простой и очевидный запрос, а для всяких DROP - это просто не нужно.

Сообщение от tenshi Посмотреть сообщение
да, и я смотрю ты активно используешь eval - это крайне медленно. ибо jit приходится каждый раз напрягаться. использование замыканий даёт лучший результат.
вот, смотри, например, низкоуровневый шаблонизатор без единого эвала http://habrahabr.ru/post/99005/
Я юзаю eval в 3-х местах на 7к строк кода - это активно (из них кстати интерпретатор это 15%)? Тем более, что через eval проходит лишь малая часть (80% интерпретатора работает без eval), которая один раз компилится и далее кешируется. Без eval было бы просто тупо больше кода и мне это не нравится, скорость работы от такого приёма падает на 1-2%.

Твои комменты не обоснованы и глупы, а если ты пытаешься троллить, то делаешь это слишком толсто.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 29.10.2012 в 22:18.
Ответить с цитированием
  #52 (permalink)  
Старый 29.10.2012, 21:57
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Кстати, на счет eval-ов. Еще один аргумент в пользу new Function - V8 применяет внутринние оптимизации для таких функций, а для eval нет. Стоит заменить.

Сори, что ввел в заблуждение в предыдущих постах. Там вместо GCC имелся ввиду V8, конечно же. А я думал, причем тут сжатие)) kobezzza, перечитай тот пост еще раз))
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф

Последний раз редактировалось B~Vladi, 29.10.2012 в 22:06.
Ответить с цитированием
  #53 (permalink)  
Старый 29.10.2012, 22:03
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от B~Vladi Посмотреть сообщение
Кстати, на счет eval-ов. Еще один аргумент в пользу new Function - V8 применяет внутренние оптимизации для таких функций, а для eval нет. Стоит заменить.

Сори, что ввел в заблуждение в предыдущих постах. Там вместо GCC имелся ввиду V8, конечно же. А я думал, причем тут сжатие)) kobezzza, перечитай тот пост еще раз))
Я юзаю new Function где могу, а eval там, где мне нужно создать функцию в контексте другой, а не в глобальном scope. Т.к. в HAVING условиях могут указываться статистические функции, то я оптимизирую это за счёт того, что все указанные в запросе (в любых местах) функции вычисляются все сразу за один проход, а потом просто раздаются по значению, как раз тут мне и удобно (подчёркиваю, удобно) заюзать доступ к родительскому scope.

Я кстати писал первую версию интепретатора без eval вообще (и без Function), но практика показала, что с eval код исполняется быстрее, нежели без него: да, на компиляцию запроса нужно больше времени, однако это делается один раз, а сам запрос генерится в более эффективный JS код, который значительно быстрее работает и кстати, запросы кешируются тоже.

Ок, перечитаю)
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 29.10.2012 в 22:12.
Ответить с цитированием
  #54 (permalink)  
Старый 29.10.2012, 22:16
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Можно прокинуть функции аргемунтами. Хотя тебе виднее
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #55 (permalink)  
Старый 29.10.2012, 22:21
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от B~Vladi Посмотреть сообщение
Можно прокинуть функции аргемунтами. Хотя тебе виднее
Я думал про это, даже какуе то реализацию накидывал, но она мне почемуто не понравилась, хотя мб и вернусь к этой идеи)
__________________
kobezzza
code monkey
Ответить с цитированием
  #56 (permalink)  
Старый 29.10.2012, 22:22
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от tenshi
я и не юзаю) но ты тратишь своё время впустую
с чего ты взял? ты думаешь если ты не юзаешь, значит другим тоже не надо? Глупая логика.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #57 (permalink)  
Старый 29.10.2012, 22:33
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

> я тупо

вот тут беда. пишешь код для себя, а суёшь его в проекты, которые разрабатываешь не только ты.

> Интерпретатор весит очень мало, килобайта 4

да всё оно по отдельности мало весит, только вот конечное приложение получается почему-то под мегабайт

> DROP делать нет смысла, для этого есть специальный метод.

http://xkcd.ru/327/

> Я юзаю eval в 3-х местах на 7к строк кода

а если вынести его в функцию myeval, то вообще в одном месте использоваться будет)

> скорость работы от такого приёма падает на 1-2%.

значит что ты ты делал не правильно

> делаешь это слишком толсто

оччёрт, еда меня раскусила ._."
__________________
.ня
Ответить с цитированием
  #58 (permalink)  
Старый 29.10.2012, 22:36
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Сообщение от B~Vladi Посмотреть сообщение
Кстати, на счет eval-ов. Еще один аргумент в пользу new Function
не-не-не, лучше и без new Function обойтись. не за чем поднимать js-интерпретатор несколько раз
__________________
.ня
Ответить с цитированием
  #59 (permalink)  
Старый 29.10.2012, 22:38
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Если ТС это интересно, я смотрю на его либу как на дополнение к своему шаблонизатору. Что-то вроде XSL для JS-объектов, который будет использоваться в коде шаблона. Я не имею ввиду нативное встраивание, а как подключение дополнительного инструмента. Если он не будет сильно сказываться на производительности
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #60 (permalink)  
Старый 29.10.2012, 22:43
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

tenshi, задачи бывают разные и во многих ситуациях "поднятие интерпретатора" во много раз увеличивает производительность.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Блокирование кнопок управления окном браузера usernew Events/DOM/Window 5 08.12.2009 09:20
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Возможности JavaScript для управления hardware-объектом AZbest Общие вопросы Javascript 19 28.10.2008 17:45