Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Porque Usar C# Y No C++

Iniciado por , 23 de Diciembre de 2004, 02:16:27 PM

« anterior - próximo »

ethernet

Cita de: "cederron"Podriamos hacer 2 programillas que mas o menos hagan lo mismo, uno en c++ y otro en c# y con un profiler mirar los tiempos.
No es necesario, C++ irá más rápido que C# en todos lo casos.


cederron

 ya... me imagino que sera mas rapido el c++ pero saber en que medida... y si es apropiado para un motor.

 Es claro que para la misma implementación algo que corre con menos capas antes de llegar al microcódigo irá más rápido. Siempre reeferido a la misma implementación claro.

seryu

 Si al final todo son maquinas de turing  :P  

zupervaca

 ese programa simple lo hice hace tiempo y consistia en un for muy grande con tres operaciones matematicas muy simples y el c++ ganaba en 2 segundos al c#, eso en un p3 1200, aparte he estado creando un pequeño motor de jerarquias para objetos 3d en c-sharp y notablemente es mucho mas lento que el c++, pero es lo que dicen, no es lo mismo estar a dos capas que ha tres o mas, aparte que el c-sharp tiene ciertas cosas que son un peligro, mirando un codigo no sabes si trabajas con estructuras o clases y hay mucha diferencia entre ellas, el c-sharp lo veo muy bien para crear herramientas y el c o c++ para crear el juego

fiero

Cita de: "cederron"ya... me imagino que sera mas rapido el c++ pero saber en que medida... y si es apropiado para un motor.
Hoy en dia cualquier cosa es apropiada para un motor. En el momento que empiezas a tirar de Hardware para renderizar triángulos, ya todo lo demás importa poco. Yo lo tengo claro ( uso mi propio motor software), da igual las optimizaciones que haga en mi programa en C++, como mucho ganaré algunos milisegundos por frame, ya que el 90% del tiempo se lo lleva la función de rellenado de polígonos.

Si se usa render por hardware, como todo el mundo hace hoy en dia, ese 90% del tiempo que utilizo yo para pintar, se reduce a la mínima expresión, con lo cual la aplicación, literalmente "vuela". Da igual con qué lenguaje recorras un octree, o con qué lenguaje captures las pulsaciones del teclado, al final "el grueso" de la aplicación lo ejecuta el hardware.

Todo después depende del programador. El que haga un bucle lento para descartar objetos de la escena en C++, también hará el mismo bucle lento en C#. No se si me explico...

Es mi humilde opinión, un saludo
www.videopanoramas.com Videopanoramas 3D player

ethernet


fiero

Cita de: "ethernet"Menos cuando usas físicas :P
Entonces le metes el Newton como ha hecho Haddd  :P

24 ethernet, estas hecho un chavalín  :D  
www.videopanoramas.com Videopanoramas 3D player

zupervaca

 
CitarEntonces le metes el Newton como ha hecho Haddd
con lo que la parte del juego mas pesada no estara hecha en c-sharp ;),  hacer un juego en c-sharp no significa que el bucle principal de mensajes del juego este en este lenguaje, para ello deberia estar todo :lol:

no creo que sea el ejemplo mas optimo de por que usar c-sharp y no c++

Ray

 ¿Habéis probado a comparar la velocidad con una función recursiva?.

un saludo.

ethernet

Cita de: "fiero"
Cita de: "ethernet"Menos cuando usas físicas :P
Entonces le metes el Newton como ha hecho Haddd  :P

24 ethernet, estas hecho un chavalín  :D
Yo me siento viejo :(

Haddd

 C# es productividad, no velocidad. Lo que yo digo es que hoy en día es mejor ser productivo, pq te permite dedicar más tiempo incluso a optimizar...

De todas formas, en C# puedes programar en C, el lenguaje lo soporta, así que si necesitas velocidad...

Y puedes tirar de librerías...así que si necesitás velocidad....

De todas formas os diremos que en el motor, lo que ha hecho que bajen muucho los fps no ha sido C#, ha sido cuando hemos decidido pasar de 2 pasadas para todo ( zbuffer + light ) a multiples pasadas. Por tanto, está claro que aquí lo que importa es la lógica de como mandes los polígonos a la tarjeta y los shaders que utilices...

zupervaca

 
CitarC# es productividad, no velocidad
ese si es un ejemplo claro de por que usar c# en vez de c++

ethernet

Cita de: "zupervaca"
CitarC# es productividad, no velocidad
ese si es un ejemplo claro de por que usar c# en vez de c++
Esta claro que algo más debe haber porque ese rendimiento en el desarrollo ya lo daban antes que C# otros lenagujes como python, java, perl... quizás sea que MS lo ha hecho bien con .NET (y no me refiero al marketing, que tb).







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.