Страница 4 из 4

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

СообщениеДобавлено: 29 май 2009, 19:11
wild_r
Код: Выделить всё
Assets/Scripts/Searching.cs(5,18): warning CS0658: `identifier' is invalid attribute target. All attributes in this attribute section will be ignored


А потом ругается на последнюю скобку.

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

СообщениеДобавлено: 29 май 2009, 19:12
Neodrop
Смотрите выше. Я поправил пост.

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

СообщениеДобавлено: 29 май 2009, 19:27
wild_r
Собственно результаты:

1) Тупо Java Script,

Код:
Скрытый текст:
Код: Выделить всё
@script ExecuteInEditMode()
var size = 6378;

function Start() {
   var objs = new Array(size);
   var i : Number;
   var j : Number;
   var k : Number;
   j =Time.realtimeSinceStartup;
   var hash = new Array(size);
   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=i; k<objs.length; k++) {
            var boo = objs[i];
            if((hash[k]==1)&&(objs[k].renderer.sharedMaterial.GetTexture("_MainTex").name == boo.renderer.sharedMaterial.GetTexture("_MainTex").name)){
               objs[k].renderer.sharedMaterial = boo.renderer.sharedMaterial;
               hash[k]=0;
            }   
         }
      }
   }
   
   Debug.Log(Time.realtimeSinceStartup - j);
}

Результаты:
Код: Выделить всё
6,9365119934082
7,43177509307861
7,27009582519531
7,15115356445312
7,13601303100586


2) Тупо Java Script с директивой "#pragma strict",

Код:
Скрытый текст:
Код: Выделить всё
#pragma strict
@script ExecuteInEditMode()
var size = 6378;

function Start() {
   var objs = new Array(size);
   var i : Number;
   var j : Number;
   var k : Number;
   j =Time.realtimeSinceStartup;
   var hash = new Array(size);
   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=i; k<objs.length; k++) {
            var boo = (objs[i] as GameObject);
            if((hash[k]==1)&&((objs[k] as GameObject).renderer.sharedMaterial.GetTexture("_MainTex").name == boo.renderer.sharedMaterial.GetTexture("_MainTex").name)){
               (objs[k] as GameObject).renderer.sharedMaterial = boo.renderer.sharedMaterial;
               hash[k]=0;
            }   
         }
      }
   }
   
   Debug.Log(Time.realtimeSinceStartup - j);
}

Результаты:
Код: Выделить всё
1,89500617980957
1,89636421203613
1,90605163574219
1,88706493377686
1,89201354980469


3) Тупо C#,

Код:
Скрытый текст:
Код: Выделить всё
using UnityEngine;
using System.Collections;

[ ExecuteInEditMode() ]

public class Searching : MonoBehaviour {
   int size = 6378;
   // Use this for initialization
   void Start () {
      
   GameObject[] objs = new GameObject[size];
   int[] hash = new int[size];
   int i=0;
   double j=Time.realtimeSinceStartup;
   int k=0;
   objs = (GameObject[]) FindObjectsOfType(typeof(GameObject));
      
   for(i=0; i<size;i++){
      hash[i]=1;
   }
   
   for(i=0; i<size; i++) {
      if(hash[i]==1){
         for (k=i; k<size; k++) {
            GameObject boo = objs[i];
            if((hash[k]==1)&&(objs[k].renderer.sharedMaterial.GetTexture("_MainTex").name == boo.renderer.sharedMaterial.GetTexture("_MainTex").name)){
               objs[k].renderer.sharedMaterial = boo.renderer.sharedMaterial;
               hash[k]=0;
            }   
         }
      }
   }
   
   Debug.Log(Time.realtimeSinceStartup - j);
   
   }   
}
Результаты:
Код: Выделить всё
1,48643779754639
1,51362609863281
1,60339546203613
1,49700164794922
1,57081031799316


Система: Q9550 4.0 Ghz, X48, 8192 MB memory DDRII @942 Mhz, HD4870 1GB @800 Mhz.

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

СообщениеДобавлено: 29 май 2009, 19:39
Neodrop
А...Чёрт... А вы не можете выложить сравнение в цифрах компактно? У мну галаза разбегаются.
Только цифры, без кода... :-?

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

СообщениеДобавлено: 29 май 2009, 20:20
Neodrop
ЖабаСкрипт с директивой близка к Шарпу. Что и требовалось доказать. Разница примерно 10%.
Но всё равно Напильник делает Жабу.
Я пишу Напильником. (В Цытатник!) :ymparty:

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

СообщениеДобавлено: 29 май 2009, 22:08
wild_r
Отредактировал.

Появилось пара вопросов: откуда такие разбросы в Напильнике и в обычной ЖС? Из-за сборщика мусора? Можно еще как-нибудь оптимизировать код?

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

СообщениеДобавлено: 30 май 2009, 09:28
Neodrop
Это из-за автоприведения типов.

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

СообщениеДобавлено: 30 май 2009, 14:39
wild_r
Юзербар крут! \m/

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

СообщениеДобавлено: 30 май 2009, 15:08
Neodrop
;;) :-