Articles of optimización de

¿Hay un reemplazo eficiente de memoria de java.lang.String?

Después de leer este artículo antiguo que mide el consumo de memoria de varios tipos de objetos, me sorprendió ver cuánta memoria utiliza String s en Java: length: 0, {class java.lang.String} size = 40 bytes length: 7, {class java.lang.String} size = 56 bytes Si bien el artículo tiene algunos consejos para minimizar esto, no los […]

La forma más eficiente de convertir String en Integer en Java

Hay muchas formas de convertir un objeto String a Integer. Cuál es el más eficiente entre los siguientes: Integer.valueOf() Integer.parseInt() org.apache.commons.beanutils.converters.IntegerConverter Mi caso de uso necesita crear objetos Entero envoltura … lo que significa que no es primitivo int … y los datos convertidos se usan solo para lectura.

Usando index, using temporary, using filesort – ¿cómo arreglar esto?

Estoy trabajando en un sistema de seguimiento de eventos que utiliza un puñado de tablas de búsqueda, así como la tabla de registro principal. En un informe que estoy escribiendo, se puede seleccionar un objeto para ver las estadísticas en contra. La interfaz muestra todos los objetos en orden de importancia decreciente (es decir, hits). […]

¿El modelo de memoria Intel hace que SFENCE y LFENCE sean redundantes?

El modelo de memoria Intel garantiza: Las tiendas no se reordenarán con otras tiendas Las cargas no se reordenarán con otras cargas http://bartoszmilewski.com/2008/11/05/who-ordered-memory-fences-on-an-x86/ He visto afirmaciones de que SFENCE es redundante en x86-64 debido al modelo de memoria Intel, pero nunca LFENCE. ¿Las reglas del modelo de memoria anterior hacen que las instrucciones sean redundantes?

¿Por qué el operador de pala (<<) se prefiere sobre el de más y más (+ =) al construir una cuerda en Ruby?

Estoy trabajando con Ruby Koans. El test_the_shovel_operator_modifies_the_original_string Koan en about_strings.rb incluye el siguiente comentario: Los progtwigdores de Ruby tienden a favorecer al operador de pala (<<) sobre el operador de igual a igual (+ =) al construir cuerdas. ¿Por qué? Supongo que implica velocidad, pero no entiendo la acción debajo del capó que haría que […]

¿Por qué estas rutinas no escalan su rendimiento de más ejecuciones concurrentes?

Fondo Actualmente estoy trabajando en mi tesis de licenciatura y básicamente mi tarea es optimizar un código dado en Go, es decir, hacer que funcione lo más rápido posible. Primero, optimicé la función serial y luego traté de introducir el paralelismo a través de goroutines. Después de investigar en Internet ahora entiendo la diferencia entre […]

¿Cuál es la forma más rápida de dividir un número entero por 3?

int x = n / 3; // <– make this faster // for instance int a = n * 3; // <– normal integer multiplication int b = (n << 1) + n; // <– potentially faster multiplication

Funciones transcendentes / trigonométricas rápidas para Java

Dado que las funciones trigonométricas en java.lang.Math son bastante lentas: ¿hay una biblioteca que haga una aproximación rápida y buena? Parece posible hacer un cálculo varias veces más rápido sin perder mucha precisión. (En mi máquina una multiplicación toma 1.5ns, y java.lang.Math.sin 46ns a 116ns). Lamentablemente, todavía no hay una forma de usar las funciones […]

Versión más rápida de búsqueda para vectores ordenados (MATLAB)

Tengo un código del siguiente tipo en MATLAB: indices = find([1 2 2 3 3 3 4 5 6 7 7] == 3) Esto devuelve 4,5,6 – los índices de elementos en la matriz igual a 3. Ahora. mi código hace este tipo de cosas con vectores muy largos. Los vectores siempre están ordenados . […]

Leer archivo como cadena

Necesito cargar un archivo xml como String en android para poder cargarlo en la biblioteca del analizador xml TBXML y analizarlo. La implementación que tengo ahora para leer el archivo como String toma alrededor de 2 segundos incluso para un archivo xml muy pequeño de algunos KB. ¿Hay algún método rápido conocido que pueda leer […]