Производитеьность скриптов. Жаба против Напильника.

Оптимизация кода.

Производитеьность скриптов. Жаба против Напильника.

Сообщение fox 20 апр 2009, 13:38

Все доброго времени суток.
Задавался ли кто-нибудь вопросом, тестил ли, есть ли разница в производительности скриптов написанных на разных языках? :-?
Добавить foxumkov в Skype
Мои проекты:
Turbodrive
Изображение

Изображение
Аватара пользователя
fox
UNITрон
 
Сообщения: 255
Зарегистрирован: 07 ноя 2008, 13:02
Откуда: Питер
  • ICQ

Re: Производитеьность скриптов

Сообщение Neodrop 20 апр 2009, 14:00

Я провёл глубокое "сканирование" официального форума. Вывод - разницы в скорости нет, если соблюдены правила оптимального программирования. К примеру самоопределение типа переменных в JavaScript ощутимо влияет на скорость работы скрипта. Добавление директивы @pragma strict и прямое указание всех типов переменных, как постоянных, так и динамических, может ускорить скрипт иногда на 50%. :-B

Код: Выделить всё
@pragma strict
var obj : GameObject;
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Производитеьность скриптов

Сообщение fox 20 апр 2009, 14:09

ясно, спасиба!
Добавить foxumkov в Skype
Мои проекты:
Turbodrive
Изображение

Изображение
Аватара пользователя
fox
UNITрон
 
Сообщения: 255
Зарегистрирован: 07 ноя 2008, 13:02
Откуда: Питер
  • ICQ

Re: Производитеьность скриптов

Сообщение wild_r 21 апр 2009, 20:13

Вот прямо сейчас работает скрипт на JS с количестовм шагов порядка n^4, работает очень долго, n примерно равно 6000. Вернее он еще не закончил работать, будет примерно 30 минут уже. Правда работает на 1 ядре типа Core 2 Duo Yorkfiled, которое имеет частоту 4 ггц.

Насчет оптимизированности - нет лишних операций.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Производитеьность скриптов

Сообщение Neodrop 21 апр 2009, 21:38

Ничего не понял... К чему это? :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Производитеьность скриптов

Сообщение wild_r 22 апр 2009, 08:42

К тому, что лучше писать на C#.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Производитеьность скриптов

Сообщение Neodrop 22 апр 2009, 09:06

Это вывод, сделанный на основании того, что у вас кривоватые руки? :-? Я видел код. Немудрено, что при 36 000 000 итераций он будет жутко тормозить, учитывая полное отсутствие оптимизации кода.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Производитеьность скриптов

Сообщение wild_r 22 апр 2009, 09:35

Ну ну, а вы своими "приямыми" руками сможете довести его работу до нормального срока? Поделитесь сакральными истинами.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Производитеьность скриптов

Сообщение Neodrop 22 апр 2009, 12:11

Я уже делился и даже, кажется в этой теме. Помимо того и в прочих топиках.
Запостите тут код, я его ради урока поправлю. Сравним выигрыш в производительности. Только сперва замерьте свой вариант. :-B
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Производитеьность скриптов

Сообщение wild_r 22 май 2009, 23:57

О, пропустил пост. Если предложение еще работает, то вот код:

Собственно он делает то, что должен был делать ваш Визард... Но без графических рюшечек. И из сцены придется удалить на время все, кроме интересующих нас объектов геометрии.
Код: Выделить всё
@script ExecuteInEditMode()

function Start() {
   var objs = new Array();
       var hash = new Array();
   var i : Number;

        objs = FindObjectsOfType(GameObject);

   for(i=0; i<objs.length;i++){
      hash[i]=1;
        }

        for(i=0; i<objs.length; i++) {
      if(hash[i]==1){
         for (k=j; k<objs.length; k++) {
            if((hash[k]==1)&&(objs[k].renderer.sharedMaterial.GetTexture("_MainTex").name == objs[i].renderer.sharedMaterial.GetTexture("_MainTex").name)){
               objs[k].renderer.sharedMaterial = objs[i].renderer.sharedMaterial;
               hash[k]=0;
            }   
         }
      }
   }


Ууу, Tab не работает в коде, немного кривое форматирование.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Производитеьность скриптов

Сообщение Neodrop 23 май 2009, 08:51

Вот ради эксперимента ваш же вариант, но в причёсаном виде. Мне интересно, какая будет разница в скорости исполнения :-?

Код: Выделить всё
@script ExecuteInEditMode()
#pragma strict

function Start() {
   var objs = new Array();
       var hash = new Array();
   var i : Number;

        objs = FindObjectsOfType(GameObject);

var count = objs.length;
   for(i=0; i<count; i++){
      hash[i]=1;
        }

        for(i=0; i<count; i++) {
      if(hash[i]==1){
         for (k=j; k<count; k++) {
            if((hash[k]==1)&&(objs[k].renderer.sharedMaterial.GetTexture("_MainTex").name == objs[i].renderer.sharedMaterial.GetTexture("_MainTex").name)){
               objs[k].renderer.sharedMaterial = objs[i].renderer.sharedMaterial;
               hash[k]=0;
            }   
         }
      }
   }
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Производитеьность скриптов

Сообщение wild_r 23 май 2009, 12:06

Смогу померить только в понедельник утром... Ждите.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Производитеьность скриптов

Сообщение PHPDog2009 23 май 2009, 12:25

Neodrop писал(а):Мне интересно, какая будет разница в скорости исполнения :-?

вдруг жаба победит?.. тогда будет зер ГУЦТ.. всё-таки, я думаю... юнитековцы не зря выбрали её как пример всем скриптам... но.. скорее всего это из-за её простоты... Но честно говоря, я думаю что верх одержит шарп.. чтоб его...
Скажи-ка дядя, ведь не даром
Винда, спалённая пожаром,
Пингвинам отдана?
Изображение
Аватара пользователя
PHPDog2009
Герой Форума
 
Сообщения: 107
Зарегистрирован: 08 май 2009, 10:24
Откуда: Россия
  • Сайт
  • ICQ

Re: Производитеьность скриптов

Сообщение Neodrop 23 май 2009, 13:17

Нет. Я думаю они во многом равны.
Но Жаба - отвратительный и неправильный выбор для любого большого проекта.
Я переписываю сейчас все свои на Шарп. Не повторяйте моих ошибок из тупого упрямства или по-незнанию. :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Производитеьность скриптов

Сообщение wild_r 23 май 2009, 14:08

Раз - это не совсем Жаба.
Два - пока только недодемка для спонсора...
Три - если будет Про, будет и Си.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

След.

Вернуться в Код

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1