 
			
				29.10.2012, 21:53
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Быдлокодер;) 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 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, 29.10.2012 в 22:18.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.10.2012, 21:57
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор Всея Форума 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.05.2009 
					
					
					
						Сообщений: 4,021
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Кстати, на счет eval-ов. Еще один аргумент в пользу new Function - V8 применяет внутринние оптимизации для таких функций, а для eval нет. Стоит заменить. 
 
Сори, что ввел в заблуждение в предыдущих постах. Там вместо GCC имелся ввиду V8, конечно же. А я думал, причем тут сжатие)) kobezzza, перечитай тот пост еще раз)) 
		
	
		
		
		
		
		
			
				__________________ 
				Болтовня ничего не стоит. Покажите мне код.  — Linus Torvalds
влад.куркин.рф
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось B~Vladi, 29.10.2012 в 22:06.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.10.2012, 22:03
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Быдлокодер;) 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 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, 29.10.2012 в 22:12.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.10.2012, 22:16
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор Всея Форума 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.05.2009 
					
					
					
						Сообщений: 4,021
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Можно прокинуть функции аргемунтами. Хотя тебе виднее    
		
	
		
		
		
		
		
			
				__________________ 
				Болтовня ничего не стоит. Покажите мне код.  — Linus Torvalds
влад.куркин.рф
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.10.2012, 22:21
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Быдлокодер;) 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.11.2010 
					
					
					
						Сообщений: 4,338
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от B~Vladi
			 
		
	 | 
 
	
		Можно прокинуть функции аргемунтами. Хотя тебе виднее  
	 | 
 
	
 
 Я думал про это, даже какуе то реализацию накидывал, но она мне почемуто не понравилась, хотя мб и вернусь к этой идеи)  
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.10.2012, 22:22
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 что-то знаю 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 24.05.2009 
					
					
					
						Сообщений: 5,176
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от tenshi
			
		
	 | 
 
	| 
		я и не юзаю) но ты тратишь своё время впустую
	 | 
 
	
 
 с чего ты взял? ты думаешь если ты не юзаешь, значит другим тоже не надо? Глупая логика.  
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.10.2012, 22:33
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.03.2008 
					
					
					
						Сообщений: 1,183
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		> я тупо 
вот тут беда. пишешь код для себя, а суёшь его в проекты, которые разрабатываешь не только ты.
 
> Интерпретатор весит очень мало, килобайта 4
 
да всё оно по отдельности мало весит, только вот конечное приложение получается почему-то под мегабайт
 
> DROP делать нет смысла, для этого есть специальный метод.
 http://xkcd.ru/327/
> Я юзаю eval в 3-х местах на 7к строк кода
 
а если вынести его в функцию myeval, то вообще в одном месте использоваться будет)
 
> скорость работы от такого приёма падает на 1-2%.
 
значит что ты ты делал не правильно
 
> делаешь это слишком толсто
 
оччёрт, еда меня раскусила ._."  
		
	
		
		
		
		
		
			
				__________________ 
				.ня
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.10.2012, 22:36
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.03.2008 
					
					
					
						Сообщений: 1,183
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от B~Vladi
			 
		
	 | 
 
	| 
		Кстати, на счет eval-ов. Еще один аргумент в пользу new Function
	 | 
 
	
 
  не-не-не, лучше и без new Function обойтись. не за чем поднимать js-интерпретатор несколько раз  
		
	
		
		
		
		
		
			
				__________________ 
				.ня
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.10.2012, 22:38
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор Всея Форума 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.05.2009 
					
					
					
						Сообщений: 4,021
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Если ТС это интересно, я смотрю на его либу как на дополнение к своему шаблонизатору. Что-то вроде XSL для JS-объектов, который будет использоваться в коде шаблона. Я не имею ввиду нативное встраивание, а как подключение дополнительного инструмента. Если он не будет сильно сказываться на производительности    
		
	
		
		
		
		
		
			
				__________________ 
				Болтовня ничего не стоит. Покажите мне код.  — Linus Torvalds
влад.куркин.рф
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.10.2012, 22:43
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор Всея Форума 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.05.2009 
					
					
					
						Сообщений: 4,021
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 tenshi, задачи бывают разные и во многих ситуациях "поднятие интерпретатора" во много раз увеличивает производительность. 
		
	
		
		
		
		
		
			
				__________________ 
				Болтовня ничего не стоит. Покажите мне код.  — Linus Torvalds
влад.куркин.рф
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |