Mensajes recientes

Páginas: [1] 2 3 ... 10
1
Offtopic / Re:De gripes y tumbas
« Último mensaje por Futu-block en Enero 17, 2018, 06:21:42 pm »
antes de decir que te mejores y eso (mierda, ya lo dije) te voy a recomendar el remedio antiguo, del que puedes hacer uso o no, pero no al 50% o la mitad

1º Te metes en el baño con agua muy caliente hasta arriba, de que te cueste trabajo meterte de lo caliente que esté, pero no que puedas hacer un huevo pasado por agua, tu sabe, ajin ma o meno
2º Cuando salgas te pones el pijama gordo de borreguito con la bata y te tomas un vaso de leche con coñac al 50%, no hace falta que sea del tiron
3º Te acuestas con un par de mantas de mas echadas
Si a mitad de la noche te tienes que levantar para cambiarte el pijama o sabanas, hazlo, merece la pena

Si ya no te curas con esto, me rindo
2
Mesa de Ayuda / Re:Tontadas y pamplinas + Otras dudas
« Último mensaje por SplinterGU en Enero 17, 2018, 11:34:20 am »
hay diferencia, no se si apenas se notaria, yo probe en un i7, quizas en un p4 la diferencia sea mayor.
3
Mesa de Ayuda / Re:Tontadas y pamplinas + Otras dudas
« Último mensaje por Futu-block en Enero 17, 2018, 08:26:43 am »
A eso le veo lógica, aunque no entienda de rendimientos, controladores ni módulos, si la respuesta al id es afirmativa entonces no hay reacción por consiguiente no trabaja, y si no trabaja no rinde, no consume o no gasta, como queráis decir

Total y resumiendo, que para un pc de media con Pentium 4, que hoy en día se que da muy muy corto pero podemos tomarlo de base; aplicarle un módulo o dos IFS apenas va a notarse la diferencia
4
Introduce Yourself! / Re:Hello everyone!
« Último mensaje por SplinterGU en Enero 17, 2018, 03:02:06 am »
wellcome!

depend your doubt...
5
Mesa de Ayuda / Re:Tontadas y pamplinas + Otras dudas
« Último mensaje por SplinterGU en Enero 17, 2018, 02:58:03 am »
demasiada larga tu respuesta...

el punto es que no estamos midiendo 1 solo mod (%) vs 1 sola 1 suma... lo equivalente a

angulo %= 360000;

(que es lo que se necesita), es:

if ( angulo >= 360000 ) angulo -= 360000; end
if ( angulo < 0 ) angulo += 360000; end

y en esos 2, lo mas rapido es hacer el modulo, luego si individualmente sea menos performante es otra cuestion... pero el punto que se necesitan ambos if y ambas sumas... e incluso te diria mas... que en el caso de los if, solo hace 1 suma cada 360000 incrementos, ahora si los incrementos son mas frecuentes, los resultados son peores para los if...

por ejemplo, forcemos en cada frame hacer la operacion de ajuste

con este codigo

Código: [Seleccionar]
    angle = 0;

    t0 = get_timer();

    for( i = 0; i < 14400000; i++ )
        angle = -10 ;
        angle %= 360000;
    end

    t1 = get_timer();

    say( t1 - t0 );

    angle = 0;

    t0 = get_timer();

    for( i = 0; i < 14400000; i++ )
        angle = -10 ;
        if ( angle >= 360000 ) angle -= 360000;
        elsif ( angle < 0 ) angle += 360000; end
    end

    t1 = get_timer();

    say( t1 - t0 );

los resultados:

Citar
$
1759
2663

$
1747
2760

hablamos del conjunto de operaciones... no de la operacion individual...

vayamos mas a fondo... ahora si comparamos 1 if vs 1 mod, si es mas rapido un if que un mod, ahora si el if da siempre true y se ejecuta la suma, entonces es mas rapido el mod... y si prescindimos del if y solo hacemos mod vs suma, los numeros son los mismos...

aca estoy casi seguro que el problema no es el modulo o la suma, sino la asignacion, por eso el if es mas rapido, porque no asigna.
6
Introduce Yourself! / Hello everyone!
« Último mensaje por jasonsmith01234 en Enero 17, 2018, 01:45:20 am »
Hello, I'm newbie, which thread should I read frist?
7
Mesa de Ayuda / Re:Tontadas y pamplinas + Otras dudas
« Último mensaje por Drumpi en Enero 17, 2018, 12:12:19 am »
No, Splinter, me has entendido mal, y tus números me dan la razón :D
Yo dije que UNA operación módulo (una operación individual) es ligeramente más lenta que un IF y UNA suma (dos operaciones individuales).

En tu código, una suma y un módulo en bucle, han dado un rendimiento apenas un 10% superior a un bucle con una suma y dos IFs en todas sus iteraciones, y una suma extra cada 360000 iteraciones.
Pero vamos a redondear y a obviar que los tics del timer no son del todo precisos, etc, etc... Y vamos a decir que una suma y un módulo son un 10% más rápidos que dos ifs y una suma... Si eliminamos la suma de ambos bucles, nos queda que un módulo es un poco más rápido que dos ifs, o lo que es lo mismo, un if tarda casi la mitad que un módulo.

Si al módulo hay que añadirle una suma para que nos devuelva un valor positivo siempre (recordemos que el módulo de -370%360 = -10) habría que añadir un if y una suma extra a la operación módulo, perdiendo toda la ventaja de velocidad que tenía :D

Creo que en su momento obtuve unos resultados similares a los tuyos, pero terminé por memorizar que no me merecía la pena usar módulo cuando daban un rendimiento tan similar, y al final, siempre iba a intentar buscar valores positivos.

Pero en realidad tiene su lógica: las ALU (el componente en el que se basan las CPU) incorporan por HW operaciones de suma, multiplicación y aritmética booleana, que se pueden ejecutar en un solo ciclo de reloj. Las divisiones y los módulos, hasta donde yo sé, no se han podido implementar igual, o al menos usando un sistema de puertas lógicas con un retardo similar al resto de operaciones.

Lo siento, pero el motor de scroll tileado me ha convertido en un friki de los módulos por culpa de los scrolls cíclicos :D :D :D
Y pensar que hay microcontroladores por 0'50€ con un mnemónico para recorrer espacios de memoria de forma cíclica sin tener que comerse la cabeza con estas operaciones, ni módulos ni nada de nada (sólo un byte que dice "lee, guardas el dato en el registro/memoria tal y salta a la siguiente posición").
8
Mesa de Ayuda / Re:Tontadas y pamplinas + Otras dudas
« Último mensaje por Futu-block en Enero 16, 2018, 09:17:07 pm »
no funcionaba cuando hice la foto, por mas que le daba se quedaba pillado, ahora vá bien
9
Mesa de Ayuda / Re:Tontadas y pamplinas + Otras dudas
« Último mensaje por SplinterGU en Enero 16, 2018, 05:18:45 pm »
vayamos por partes, 1º el foro me dá error y no me aparece la caja de texto:


2º· Me expresé mal con el codigo de la primera vez, razonandolo yo digo que sies mas de 360º se convierte a 0º, osea, si fuera 400º serian 0º

Código: [Seleccionar]
if (angle > 360000) angle = 0; end
if (angle < 0) angle = 360000; end

ambos me aconsejais que use:
Código: [Seleccionar]
if ( angle >= 360000 ) angle -= 360000;
elsif ( angle < 0 ) angle += 360000; end (¿deberia ir un igual detras de <?)
 
¿entonces pa que os peleais? ja ja ja

No, en serio, ¿si el angulo es mayor o igual a 360º que reste 360º o si es menor de cero que sume 360º? parece razonable, si muy confiable, aunque pensandolo bien lo voy a usar cuando se levante el dedo de la tecla (!key)

el box, amplialo! debajo de las caritas esta la barra de tamaño (gris con una marca gris oscura en medio), la tenes colapsada, dale a la barrita gris "oscura" y deslizala para abajo...
10
Mesa de Ayuda / Re:Tontadas y pamplinas + Otras dudas
« Último mensaje por SplinterGU en Enero 16, 2018, 05:16:56 pm »
no peleamos, solo digo que usar %= es mas rapido que la secuencia de ifs y sumas y restas
Páginas: [1] 2 3 ... 10