Título: Duda sobre codigo Eficiencia Publicado por: lexoazul en 30 Agosto 2010, 23:51 pm Hola a todos, la verdad que tengo una gran duda me dejaron un trabajo de la escuela pero quisiera que me ayudaran para poder realizarla.
El problema es que tengo que contar cuanta eficiencia tiene un codigo Es decir por cada asignacion,operacion aritmetica o logica tiene un valor de 2 nanosegundos. por ejemplo en una asignacion de variable: Código: int x=0; //Esta asignacion tiene un valor de 2 nanosegundos El problema es en un for ejemplo: Código: int y = 5; //2 nanosegundos El principal problema es que el codigo lo tengo que leer desde un .txt; es decir la duda es saber cuantos nanosegundos van hacer, considerando que en cada ciclo del for son 8 nanosegundos; osea en total por le for de arriba seran 40 mas la asignacion de la variable y. Les agradeceria mucho por su ayuda. Nuevamente gracias Título: Re: Duda sobre codigo Eficiencia Publicado por: Debci en 31 Agosto 2010, 00:30 am Donde conseguiste exactamente esos valores?
Es parte de un trabajo de Cómputo? Si te digo la verdad estas cosas solo las habia hecho con C pero si me dices donde hay una lista con los tiempos o una documentación al respecto, prometo ayudarte en lo que me sea posible. Saludos Título: Re: Duda sobre codigo Eficiencia Publicado por: egyware en 31 Agosto 2010, 00:38 am Código: int x=0; //Esta asignacion tiene un valor de 2 nanosegundos Código: int y = 5; //2 nanosegundos Dudo que ese for dure en total 8 nanosegundos, no me refiero el valor si no por la condicion que se se repite hasta que el programa se cierre. Primero te recomiendo que derives la complejidad del algoritmo por ejemplo Código Eso como intera n veces siempre osea el algoritmo es de orden O(n) con n = 10. Como ya sabemos el orden de complejidad, asumo que cada instruccion se demora 2 nanosegundos, entonces tengo en total que ese simple for se demorara n * 2 ns, con n = 10 osea 20 nanosegundos. Saludos espero que me hayas entendido Título: Re: Duda sobre codigo Eficiencia Publicado por: lexoazul en 31 Agosto 2010, 01:59 am gracias por contestar.
Bueno los datos del tiempo en cuanto va a tardar lo asigne es decir; solo dije que por cada asignacion va a tardar 2 nanosegundos. consideracion: por cada asignacion(=) tardara 2 nanosegundos. por cada operacion aritmetica(+,-,/,*) tardara 2 nanosegundos. por cada operacion logica(|,&,++) tardara 1 nanosegundo. Solo lo designamos al azar. Como decia en el ejemplo del for Código: for(int i=0;i<10;i++) es decir por el int = 1 //son dos nanosegundos el i<10 //seran 2 nanosegundos y el i++ //seran 2nanosegundos en total por el primer ciclo seran 6 nanosegundos por los 10 ciclos seran entonces 60 nanosegundos. Espero haya quedado claro el ejemplo. bueno el principal problema es que el codigo lo tengo que leer desde un .txt y mi programa(hecho en java) debe de contar el total del tiempo en que va a tardar todo el proceso(tomando encuenta las consideraciones de arriba). Estaba pensando en leer todo el codigo y dividirlo por caracter; despues ir buscando el simbolo de asignacion(=), o el de alguna operacion aritmetica(+,-,/,*) y ya que lo encontrara, iria sumando el tiempo. Como decia el problema es en un for porque tengo que tener encuenta que son varios ciclos y no se como decirle eso a mi programa. Gracias egyware y Debci, Espero me hayan entendido y claro espero me sigan ayudando, estare pendiente sobre el tema. Gracias por su ayuda. Título: Re: Duda sobre codigo Eficiencia Publicado por: egyware en 31 Agosto 2010, 02:08 am Ohhhh osea tu tienes que leer el programa y todo =S
vaya que dificil Por lo que entendí debes leer y entender el programa dentro del txt, osea hacer un interprete D: Por lo menos mucho no te puedo ayudar. Podrias usar analizadores de sintaxis aunque desconozco si pueden servirte como realmente funcionan como Bison, ANTLR, Lex, Yacc http://en.wikipedia.org/wiki/Parsing Saludos Título: Re: Duda sobre codigo Eficiencia Publicado por: [D4N93R] en 31 Agosto 2010, 02:16 am Pero eso es relativo, por qué no le dices a tu profe que eso no funciona :P
La mejor forma de hacerlo sería la diferencia de tiempo y correrlo unas 10 veces, eliminar el record más bajo y el más alto, para luego sacar un promedio. Algo así sería ideal. Ya que si por ejemplo, de la manera como tú lo haces, en el for haces una condición y si es verdadero haces i-- ya se comienza a hacer casi imposible medir el rendimiento de esa manera. Saludos! Título: Re: Duda sobre codigo Eficiencia Publicado por: Leyer en 31 Agosto 2010, 03:20 am No esta dificil con tan pocas consideraciones, si tratas con strings no habrá problemas, otra cosa es cuarquier fuente que leera o un fuente ya propuesto?
Título: Re: Duda sobre codigo Eficiencia Publicado por: lexoazul en 31 Agosto 2010, 21:55 pm gracias a todos.
Citar No esta dificil con tan pocas consideraciones, si tratas con strings no habrá problemas como que consideraciones serian? pensaba en eso que sea puros string y despues separarlos caracter por caracter y guardarlo en un arreglo para luego ir comparando con las consideraciones antes mencionadas. Es una fuente ya propuesta ejemplo: Código: public class InsercionDirecta consideracion: por cada asignacion(=) tardara 2 nanosegundos. por cada operacion aritmetica(+,-,/,*) tardara 2 nanosegundos. por cada operacion logica(|,&,++) tardara 1 nanosegundo. Título: Re: Duda sobre codigo Eficiencia Publicado por: Dznp en 31 Agosto 2010, 22:07 pm Hola! :D
Te recomendaría que aclares que tipo de codigo necesitarias verificar, si el source de un programa o un simple txt que tenga 3 variables y un for. Quizas te podamos ayudar así. Suerte. Título: Re: Duda sobre codigo Eficiencia Publicado por: lexoazul en 31 Agosto 2010, 22:19 pm Es un txt que tiene el siguiente codigo
Código: public int sumar(){ Este es el codigo que tengo que verificar. Título: Re: Duda sobre codigo Eficiencia Publicado por: Leyer en 1 Septiembre 2010, 00:52 am Es simple, pero no se hacen tareas avanza en algo, y coloca lo que llevas tienes que usar toCharArray(), indexOf, lastIndexOf , startsWith, substring etc etc.
Un saludo. Título: Re: Duda sobre codigo Eficiencia Publicado por: lexoazul en 1 Septiembre 2010, 05:30 am Ok gracias a todos, tomare en cuenta todos sus comentarios.
Y apenas termine lo voy a subir para que me comenten. Nuevamente gracias a Todos |