steban писал(а) 11. Июля 2008 :: 18:22:berezdetsky писал(а) 11. Июля 2008 :: 16:43:Здесь на одно сложение больше, чем в тестах для других языков.
Машина, на которой запускались первые измерения, мне сейчас недоступна.
После приведения всех программ к одному виду (и на другой машине) результаты такие:
1С - 4 с
VBS - 1.6 с
JS - 1.6 с
Lua - 1.2 с
Но для js остается возможность оптимизации с использованием оператора +=.
Для других языков гайки затягивать уже некуда.
особенно удивительна разница во времени выполнения кода 1С на разных машинах.
1-я была 32-х разрядная, 2я - 64 В дополнении провел немного тестов
(два теста один на суммирование строк другой на суммирование чисел):
на их проведение помимо данной темы меня натолкнул пост
http://habrahabr.ru/blogs/javascript/105199/(Сравнение производительности Javascript-движков с родным Linux приложением.)
Свои замеры проводились в Windows(на одной и той же машине).
Каждый замер проводился 3 раза
в качестве результата бралось среднее трех измерений.
1С строки тест:
т=_GetPerformanceCounter();
_стр="";
_вр ="";
Для Сч=1 По 100000 Цикл
_вр =Строка(Сч)+",
|";
_стр =_стр +_вр;
КонецЦикла;
Сообщить(_GetPerformanceCounter()-т);
1С числа
т=_GetPerformanceCounter();
_стр=0;
Для Сч=1 По 100000 Цикл
_стр =_стр +Сч;
КонецЦикла;
Сообщить(_GetPerformanceCounter()-т);
на моей машине результаты такие
1С7.70.025
строки
144295 мс
//2мин 24сек
числа
192.3 мс
1С:Предприятие 8.1 (8.1.9.57)
строки
125522 мс
//2мин 5сек
числа
1670 мс
JS строки
var now = new Date().getTime() ;
s='';
for(i=0;i<100000;i++)
s+=i+",\r\n";
var now2 = new Date().getTime();
now2=now2-now;
alert("time="+now2);
JS числа
function displaymessage()
{
var now = new Date().getTime() ;
s=0;
for(i=0;i<100000;i++)
s+=i;
var now2 = new Date().getTime();
now2=now2-now;
alert("time="+now2);
-------------------
JS IE 6.0.3790.3959
строки
127793 мс
//2мин 8сек
числа
78 мс
JS Opera 10.63
строки
42.6 мс
числа
3.5 мс
JS Google Chrome 6.0.472.63
строки
31 мс
числа
3 мс
JS FireFox 4.0.b6
строки
22 мс
числа
0.8 мс (что бы добиться хорошей точности для случая
увеличил размер в 10 раз и поделил время на 10)
------------------
Выводы по данным тестам такие
1С81 быстрее работает со строками на 15%
но с числами работает медленнее в 8.7 раза.
JS IE 6 13% быстрее со строками
и 2.5 раза быстрее с числами.
JS Opera 10.63
3387 раз быстрее со строками
и 55 раза быстрее с числами.
JS Google Chrome 6.0.472.63
4655 раз быстрее со строками
и 64 раза быстрее с числами.
JS FireFox 4.0.b6
6559 раз быстрее со строками
и 240 раза быстрее с числами.
Получается что работа со строками в современных интерпритаторах
улучилась на 3,5 порядка а с числами где то на 2 порядка.
Так что все срочно учить JS и переписывать все под него.

Данные результаты показались мне интересными потому
и выкладываю их здесь.