Estoy escribiendo una aplicación que utiliza el algoritmo Dijkstra para encontrar rutas mínimas en el gráfico. Los pesos de los nodos y los bordes en el gráfico son float
números, por lo que el algoritmo realiza muchas aritméticas en números float. ¿Puedo ganar un tiempo de ejecución? ¿Mejorar si convierto todo el peso en int
s? ¿Las operaciones aritméticas int son más rápidas en Java que las flotantes?int vs float eficiencia aritmética en Java
Intenté escribir un punto de referencia simple para verificarlo, pero no estoy satisfecho con los resultados que obtuve. Posiblemente el compilador ha optimizado algunas partes del programa para que los resultados no se vean bien para mí.
EDIT:
El problema que estoy tratando de resolver es en el campo de la recuperación de información. La aplicación debe mostrar las respuestas a una consulta planteada como un conjunto de palabras clave.
Mi estructura de datos es un gráfico dirigido ponderado. Dado un conjunto de nodos hoja, tengo que encontrar un árbol más pequeño que conecte estos nodos y muestre la respuesta al usuario. Los pesos son asignados por una función de ponderación basada parcialmente en la técnica tf/idf. El usuario no sabe qué pesos le asigno a los nodos y los bordes, solo quiere que las respuestas sean relevantes para la consulta que planteó. Por lo tanto, no se requieren resultados exactos, solo la posibilidad de enumerar las respuestas de acuerdo con su ponderación. Solo el uso nativo de la función de ponderación (como lo mencioné se basa en tf/idf) da pesos de flotación, así que utilicé flotadores hasta el momento.
Espero que esto agregue algunos antecedentes a la pregunta.
¿Cuál fue el resultado de todos modos? – Amarghosh
Me di cuenta de que la multiplicación de las cifras es un poco más rápido, alrededor del 13%, pero comparar dos entradas es más lento, aproximadamente un 22%. – jutky
No estoy del todo seguro, pero para Dijkstra, solo las operaciones de suma y comparación serían suficientes. Y para esas operaciones, no debería variar tanto para float o int. Estoy realmente sorprendido de que la comparación entera sea un 22% más lenta. ¿Puedo aprender qué tipo de evaluación comparativa llevó a cabo? – tafa