Переключение на Главную Страницу Страницы: 1 2 3 [4] 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) Сравнительная производительность 1С и JavaScript (число прочтений - 20970 )
vladimirmir2012
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 426
Зарегистрирован: 18. Мая 2011
Re: Сравнительная производительность 1С и JavaScript
Ответ #45 - 27. Января 2014 :: 09:20
Печать  
.
« Последняя редакция: 01. Июня 2014 :: 06:40 - vladimirmir2012 »  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Сравнительная производительность 1С и JavaScript
Ответ #46 - 27. Января 2014 :: 09:40
Печать  
Я же выше уже написал, что сейчас нет смысла жестко завязываться на JavaScript. Разница во времени выполнении скрипта может составлять до 1000 раз, а IE11 есть далеко не у всех, да и интегрировать в программу поле HTML для выполнения куска кода ИМХО нерентабельно и далеко не всегда возможно. Да и конвертер [1С->другие языки] меня мало интересует. Легче и правильнее написать блок кода сразу на нужном языке.

Я сейчас уже другой мыслью занялся - выполнение кода c# или с++ (последнее предпочтительнее) "на лету", или компиляция "на лету" библиотеки с последующем ее использованием с ВК-инжектором. Пример для c# я нашел: http://yrevotyuk.blogspot.ru/2013/03/in-flight-csharp.html
  
Наверх
 
IP записан
 
vladimirmir2012
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 426
Зарегистрирован: 18. Мая 2011
Re: Сравнительная производительность 1С и JavaScript
Ответ #47 - 27. Января 2014 :: 09:58
Печать  
.
« Последняя редакция: 01. Июня 2014 :: 06:40 - vladimirmir2012 »  
Наверх
 
IP записан
 
vladimirmir2012
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 426
Зарегистрирован: 18. Мая 2011
Re: Сравнительная производительность 1С и JavaScript
Ответ #48 - 27. Января 2014 :: 11:27
Печать  
.
« Последняя редакция: 03. Июня 2014 :: 15:23 - vladimirmir2012 »  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Сравнительная производительность 1С и JavaScript
Ответ #49 - 27. Января 2014 :: 11:34
Печать  
Ну если не заходить глубоко в дебри, то может подскажешь как выполнить JavaScript-код, минуя стандартный WSH-движок, с передачей в него параметров и возврата результата в 1С. Желательно не в теории а на практике. Ну и чтобы скорость выполнения была сравнима с JavaScript Chakra который в IE11. А уж от простого к сложному двигаться.
  
Наверх
 
IP записан
 
vladimirmir2012
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 426
Зарегистрирован: 18. Мая 2011
Re: Сравнительная производительность 1С и JavaScript
Ответ #50 - 27. Января 2014 :: 11:50
Печать  
.
« Последняя редакция: 01. Июня 2014 :: 06:40 - vladimirmir2012 »  
Наверх
 
IP записан
 
vladimirmir2012
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 426
Зарегистрирован: 18. Мая 2011
Re: Сравнительная производительность 1С и JavaScript
Ответ #51 - 27. Января 2014 :: 14:09
Печать  
.
« Последняя редакция: 01. Июня 2014 :: 06:40 - vladimirmir2012 »  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Сравнительная производительность 1С и JavaScript
Ответ #52 - 27. Января 2014 :: 15:22
Печать  
И что это дает? Если сейчас возможно написать скрипт на JS который заткнет за пояс Lua минимум на 2 порядка за счет JIT-компиляции. Я спрашивал про решения, которые равны по производительности или хотя бы приближены. Вот когда кто-нибудь найдет библиотечку, которая позволит выполнить нижеприведенный скрипт (или его аналог) хотя бы за 2 секунды (а лучше не более одной) - дайте знать плиз.

Код
Выбрать все
var a, b, c, d, i;
for (i = 0; i < 1000000000; i++) {
	a = "1";
	b = "2";
	c = "3";
	d = a+b+c;
}; 



У меня вот этот скрипт на миллиард циклов за 0.76 секунды выполняется (в поле HTML). А что там с Lua?
P.S. Для примера тот же самый код в C# выполняется аж за 25 секунд. Почувствуйте силу JIT.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнительная производительность 1С и JavaScript
Ответ #53 - 27. Января 2014 :: 15:35
Печать  
Возможно, я не в теме, но Луа как раз один из самых быстрых интерпретируемых языков.
Нужно спросить у spock-а или steban-а, не помню, кто из них на Луа писал.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Сравнительная производительность 1С и JavaScript
Ответ #54 - 27. Января 2014 :: 15:37
Печать  
artbear, да - он быстрый, но согласись что чистый машинный код быстрее. Улыбка
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Сравнительная производительность 1С и JavaScript
Ответ #55 - 27. Января 2014 :: 15:40
Печать  
maljaev писал(а) 27. Января 2014 :: 15:22:
И что это дает? Если сейчас возможно написать скрипт на JS который заткнет за пояс Lua минимум на 2 порядка за счет JIT-компиляции.
...
У меня вот этот скрипт на миллиард циклов за 0.76 секунды выполняется. А что там с Lua?
P.S. Для примера тот же самый код в C# выполняется аж за 25 секунд. Почувствуйте силу JIT.

Я бы не был столь категоричен, зачастую "оптимизаторы кода" просто выпиливают все лишнее, не делая зря "глупую", по их мнению, работу. Например, не подменяет ли JIT-компилятор, в твоем случае, все эти операции сложения и присваивания на одну единственную операцию присваивания (d="123"), а с учетом того, что данная переменная больше нигде не используется, то и вовсе выбрасывает этот глупый цикл из расчета.
  
Наверх
ICQ  
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Сравнительная производительность 1С и JavaScript
Ответ #56 - 27. Января 2014 :: 15:43
Печать  
Нет, до этого код был сложнее (привожу ниже) и результаты были аналогичными. Плюс я проверял значения времени выполнения alert-ом.

Код
Выбрать все
var a, b, c, d, i;
for (i = 0; i < 1000000000; i++) {
	a = i%1000;
	b = i*1000;
	c = i/1000;
	d = a+b+c;
}; 



Как в этом алгоритме компилятор может упростить конструкцию?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Сравнительная производительность 1С и JavaScript
Ответ #57 - 27. Января 2014 :: 15:45
Печать  
Например, такой вариант исключит "предпросчет":
Код
Выбрать все
var a, b, c, d, i;
d = "1";
for (i = 0; i < 1000000000; i++) {
	a = d;
	b = "2";
	c = "3";
	d = a+b+c;
	d = d.substring(1,4);
}; 


Интересно, сколько будет тут "попугаев"?
  
Наверх
ICQ  
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Сравнительная производительность 1С и JavaScript
Ответ #58 - 27. Января 2014 :: 16:08
Печать  
Salimbek, хитрый ты Улыбка на миллиард дает 145 секунд. Правда последнюю строчку изменил на "d=d.substring(0,3)", т.к. она у тебя вроде не корректна ИМХО.
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Сравнительная производительность 1С и JavaScript
Ответ #59 - 27. Января 2014 :: 16:14
Печать  
Ну а скажем такой тест выполняется за 10 секунд. А вычислительная нагрузка ИМХО больше. Здесь у оптимизатора есть возможность схитрить?

Код
Выбрать все
var massiv = [3];
for (var i = 0; i < 1000000000; i++) {
	massiv[0] = i%1000;
	massiv[1] = i/1000;
	massiv[2] = i*1000;
	massiv[3] = massiv[0]+massiv[1]+massiv[2];
	massiv[0] = massiv[3];
}; 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 3 [4] 5 
ОтправитьПечать