Code benchmarks Unity3D

r2d2rigo

Si aplica, yo puedo marcar el Update/Awake/loquequiera como virtual y hacer mis movidas con OOP (aunque no sea lo optimo).

Repito, Unity no tiene por que llevarte de la mano con estas microoptimizaciones, en el momento que alguien se encuentra con problemas de rendimiento relacionados con este caso va siendo hora de que se documenten un poco y empiece a saber como funcionan el lenguaje, el motor y el runtime.

1 respuesta
B

#61 No aplica porque el sistema llama al método (hablamos de Update) en cada frame. Además de ser "framedependiente" es "enginedependiente".

Es responsabilidad directa del engine supervisar la función... y no solo por optimización.

r2d2rigo

Que si machote, que lo que tu digas. A ver si llega ya Unity 2019.1 con machine learning integrado para que te optimice el codigo con un boton.

Lo que hay que leer.

1 respuesta
B

#63 se ve que no entiendes el por qué "Update es engine dependiente"...

...para que vayas pillando:

How Update is called

No, Unity doesn’t use System.Reflection to find a magic method every time it needs to call one.

Instead, the first time a MonoBehaviour of a given type is accessed the underlying script is inspected through scripting runtime (either Mono or IL2CPP) whether it has any magic methods defined and this information is cached. If a MonoBehaviour has a specific method it is added to a proper list, for example if a script has Update method defined it is added to a list of scripts which need to be updated every frame.

During the game Unity just iterates through these lists and executes methods from it — that simple.

1 respuesta
pirri1721

#64 Desde la barra del bar y para quitar hierro, que me gusta este hilo:
"La magia no existe, todo tiene su singleton"
Programador anónimo

EDIT: Acabo de encontrarme esta frase en un artículo gamasutra, va en la línea que alguien antes comentó de la optimización adelantada:
"There's no point making the bed if you still have to change the sheets."

1 respuesta
B

No empleo jerga para facilitar a los usuarios que nos leen el entendimiento de los conceptos... no son pocos los que no son programadores.

Sin embargo, esto provoca que "interpolados y machitos" (probablemente derivado de algún tipo de complejo) se vengan arriba.

Dejo de aportar al hilo ya que, por un lado no interesa que determinados energúmenos coman del trabajo de terceros y por otro, no me apetece leer contenido malintencionado y menos venido en grupos.

Jastro, por mi puedes "chaparlo".

PD: #65 sobre el update, te recomiendo que leas esta entrada click AQUI y todos los comentarios que hay al final de la misma... entenderás por qué los "venidos arriba, sean interpolados o machitos" nadan en la ignorancia y solo vienen a malmeter.

2 respuestas
r2d2rigo

#66 a llorar a otro lado, este foro es para aportar cosas utiles, cosa que tu hacias a medias.

1 respuesta
pirri1721

#66 Si he entendido bien, los comentarios están llenos de genios que no tienen ninguna duda de como el equipo de Unity debería hacer su trabajo xD
"The post basically says “the framework is old, bad, and slow, the new framework is even slower, here’s a half finished hack you can use instead”."

Sin haber subido de nivel SuperSayan, agradezco este tipo de información y de artículos: no tengo un conocimiento profundo (supongo q por falta de formación reglada) de como funcionan las llamadas y los hilos (jamás he hablado con un procesador) pero aunque no vea la mayoría de la chicha que hay por detrás llego a entender que se discute y porque resulta importante.
Es más, estoy pensando que precisamente el enfoque de Unity está orientado a que capullos como yo puedan abordar el engine y exprimirlo.
A mi me molaba este hilo, como siempre, encantado de escuchar y aprender de mejores profesionales que yo.

#67 Que no creo q gForce necesite que salga nadie en su defensa, pero es que no logro entender de donde surge esa actitud.
Si de verdad eres algo más que un trol (porque creo que defiendes que si tienes puta idea de todo esto) donde coño está tu respeto por lo que hacemos? Y no en concreto, evidentemente, que habrá proyectos más admirables que otros, pero aunque escribas el código más eficiente del mundo con el nardo deberías tener clarinete la dificultad y cantidad de esfuerzo y sacrificio que conlleva hacer juegos y creo que deberías alabar aquellos esfuerzos (absolutamente voluntarios y gratuitos) de gente que intenta trasmitir sus conocimientos para el resto, de los cuales, estoy seguro, que tu también habrás bebido.

A lo mejor me gano la primera moderación, pero es que hay que ser gilipollas para ir de prepotente en este secarral que es la industria nacional

1 respuesta
r2d2rigo

#68 este thread es basicamente "estoy tocando cosas al azar y poniendolas por aqui sin tener mucha idea para ver como molo".

  • Los benchmarks son completamente sinteticos, y mas de uno de los que ha puesto es muy raro que ocurra en el mundo real.
  • Los esta corriendo dentro del propio editor, lo cual no es representativo del resultado final.
  • No hace warm-up, por lo que el resultado final es erroneo: https://stackoverflow.com/questions/1047218/benchmarking-small-code-samples-in-c-can-this-implementation-be-improved
  • Esta comprobando cosas del lenguaje/runtime (como el for vs foreach) en lugar de cosas especificas de Unity.
  • Testea cosas que estan EN LA DOCUMENTACION como los metodos vacios y se sorprende como si lo hubiera descubierto el.

Iniciativas asi estan muy bien, pero por favor hacedlas solo si teneis los conocimientos necesarios para no acabar aportando informacion falsa. Que lo ultimo que le hace falta al gamedev es que los noobs encuentren threads erroneos como este y los defiendan a capa y espada, como ha pasado aqui.

Jastro

Chapo el hilo ya que el autor lo ha pedido. Pero quiero dejar las cosas claras:

Cuando una persona crea un hilo de esta magnitud, puede hacerlo bien o mal, despues de todo, aqui nadie es perfecto. Me parece una sobrada la actitud general del hilo. Ya sea para decir las criticas, como para recibirlas, considero que todos tenemos una edad ya y los que saben no deberia faltar el respeto e intentar llevarlo a una critica constructiva, dejando de lado la ironia o el sarcasmo sobra.

Sea para bien o para mal, al menos ha echado huevos y creado un hilo para aportar cosas. ¿Erradas? Welp, se habla, se fixea y se soluciona. Repito me parece una sobrada la actitud de mierda esa de, como no tienes ni puta idea de lo que haces, deja de hacerlo. Es una cosa que en España ocurre mucho y en Mediavida sobre todo. Mi idea para este foro es eliminar esas mierdas porque sobran.

Ahora bien, al igual que me quejo de las criticas, tambien me quejo a la hora de recibir criticas. Por ejemplo, que una persona te indique que los valores estan mal (que tambien es verdad que fue con mala actitud y esto siempre provoca estas cosas) la respuesta sea, "yo ya programaba en Ensamblador" es una sobrada tambien.

Da igual que hayas programado en Kobol, asm o lo que sea. En programación, nunca se deja de aprender.

Lo dicho. Cierro el hilo, pero a ver si en vez de meter tanta mierda, maduramos y empezamos entre todos a generar contenido.

3
Tema cerrado