Noticias que mencionan Daniel Lemire

Optimización de tablas de búsqueda en C++ con hash perfecto

El artículo técnico describe una biblioteca de C++ que permite construir tablas de búsqueda con hash perfecto, eliminando las colisiones y reduciendo el tiempo de consulta a unos cinco ciclos de CPU. A diferencia de las implementaciones estándar como std::unordered_map, que requieren hashing en tiem

Algoritmo de parsing de IPv4 en Swift con alta velocidad

Un desarrollador ha presentado un nuevo algoritmo para el parsing de direcciones IPv4 en Swift que logra una velocidad de 75 instrucciones en 15 ciclos de CPU, alcanzando tiempos de ejecución de aproximadamente 3 nanosegundos en procesadores M6. Este enfoque se distingue por su eficiencia en el leng

Bluesky implementa filtros de Bloom de un solo hash para optimizar su backend

El equipo de ingeniería de Bluesky ha desplegado en producción una implementación de filtros de Bloom de un solo hash (One Hash Bloom Filters) en su backend, una decisión técnica diseñada para reducir la latencia de consultas y mejorar la escalabilidad del sistema. Esta estructura de datos probabilí

Python 3.14t permite parsear JSON a 66 GB/s con fastsimdjson

El lanzamiento de la versión sin bloqueo de intérprete global (GIL) en Python 3.14, denominada python3.14t, permite ejecutar múltiples hilos simultáneamente, lo que habilita el procesamiento paralelo de datos masivos. Un artículo técnico de Daniel Lemire demuestra que, combinando esta versión con la

Reseña técnica: Mastering SIMD con Java Vector API

El libro 'Mastering SIMD with Java Vector API', escrito por Roman Snytsar y publicado por Apress en 2026, ofrece una guía técnica para programadores de Java que buscan optimizar el rendimiento de sus aplicaciones mediante la paralelización de datos. La obra se centra en el uso de la API Vector, disp

Prueba efímera: validar código con agentes de IA transitorios

La prueba efímera es una metodología de ingeniería de software que utiliza agentes de inteligencia artificial para validar la calidad del código base mediante la construcción de capas superiores transitorias. A diferencia de las pruebas de integración tradicionales, este enfoque no evalúa directamen

Optimización de caché n-gram en llama.cpp acelera la decodificación

Un desarrollador ha implementado optimizaciones en llama.cpp que aceleran la decodificación mediante búsqueda de prompts (prompt lookup decoding) hasta 42 veces más rápido y reducen el uso de memoria hasta 2,6 veces. Esta mejora se basa en técnicas de optimización de rendimiento inspiradas en el tra

Análisis técnico: cómo AMD Ryzen aumentó su velocidad un 50% en dos años

El análisis técnico de Daniel Lemire revela que los procesadores AMD Ryzen 7 de 2022 a 2024, específicamente los modelos 5800X3D, 7800X3D y 9800X3D, experimentaron un aumento del 50% en su rendimiento según las pruebas de Geekbench 6. Este incremento se atribuye a la transición de la arquitectura Ze

Los números flotantes subnormales son lentos en procesadores Intel

Los números de punto flotante subnormales, definidos por el estándar IEEE para valores muy pequeños, presentan un coste de rendimiento significativo en procesadores Intel. Un análisis técnico realizado por Daniel Lemire demuestra que estas operaciones pueden ralentizar las computaciones hasta 45 vec

Por qué los conjuntos y diccionarios de Python no son realmente O(1)

En Python se asume de forma generalizada que las estructuras dict y set ofrecen operaciones en tiempo constante, pero esa afirmación es un modelo simplificado, no una realidad garantizada. Un diccionario se implementa mediante una tabla hash, cuya eficiencia depende de una buena función de hash y de

La nueva API JSON de Go: ¿hasta el doble de rápida o 1,5 veces más lenta?

Go 1.27 incorpora por defecto el nuevo paquete encoding/json/v2 en su biblioteca estándar, con una API prácticamente idéntica a la del paquete original encoding/json, aunque no se trata de un reemplazo directo: difiere en aspectos como la validación Unicode y la sensibilidad a mayúsculas y minúscula

Los LLM hacen viables lenguajes 'duros' como Rust y Zig

La irrupción de los modelos de lenguaje grandes está cambiando los criterios con los que los desarrolladores eligen un lenguaje de programación. Históricamente, la familiaridad con la sintaxis y las peculiaridades de cada lenguaje suponía una barrera de entrada importante, pero los agentes basados e

Cómo parsear direcciones IPv4 en C# a gran velocidad con AVX-512

El investigador Daniel Lemire presenta una rutina en C# capaz de parsear direcciones IPv4 —como 192.168.0.1— unas tres veces más rápido que la función IPAddress.TryParse incluida en la biblioteca estándar de .NET. La clave está en aprovechar las instrucciones SIMD AVX-512, disponibles en procesadore

El precio de las memorias borra dos décadas de abaratar el PC

El desarrollador y científico Daniel Lemire ha publicado en GitHub gráficos que muestran cómo el precio de las memorias para PC ha regresado a niveles de 2007, lo que considera una reversión de veinte años de progreso en abaratar el hardware. La memoria RAM ha subido un 400 % en un año, sin señales

Optimización guiada por perfil en Go: qué es y cuánto mejora el rendimiento

La optimización guiada por perfil, conocida como PGO, sustituye las conjeturas del compilador por datos medidos: se ejecuta el programa, se registra dónde consume tiempo y esa grabación se devuelve al compilador para una segunda compilación más afinada. Go incorpora PGO desde la versión 1.20 mediant

std::hive de C++26: más rápido que list, pero no reemplaza a vector

std::hive, el nuevo contenedor que incorpora el estándar C++26, ocupa un espacio intermedio entre std::vector y std::list. Como un vector, almacena sus elementos en bloques contiguos de memoria, lo que permite recorrerlos sin saltar entre punteros; como una lista, nunca mueve un elemento tras insert

Cuánto ayudan los niveles de microarquitectura amd64 en Go

Recompilar código Go con niveles de microarquitectura más altos puede recortar hasta un 43% el tiempo de ejecución en operaciones intensivas, sin tocar una sola línea de código fuente, según un análisis publicado por el investigador Daniel Lemire, profesor de la Universidad de Quebec y reconocido ex

Solo el 17% de los enteros de 64 bits son productos de dos enteros de 32 bits

Daniel Lemire, científico de la computación, ha revelado que solo el 17% de todos los enteros sin signo de 64 bits pueden expresarse como el producto de dos enteros de 32 bits. Este hallazgo, respaldado por el trabajo matemático de Webster y sus colegas, aborda una preocupación práctica en el diseño

IA mejora código ensamblador y acelera rendimiento

Investigadores han demostrado que la inteligencia artificial (IA), específicamente modelos como Grok y Claude, pueden optimizar código en lenguaje ensamblador, logrando mejoras significativas en el rendimiento. Daniel Lemire, investigador, llevó a cabo un experimento donde solicitó a estas IA que op

Procesadores 'aprenden': Impacto en pruebas de rendimiento

Un nuevo análisis revela la capacidad de los procesadores modernos para aprender y predecir patrones de ejecución, lo que afecta significativamente la precisión de las pruebas de rendimiento (benchmarking). Daniel Lemire, investigador y experto en rendimiento de software, ha descubierto que los proc

ARM Neon: cálculo más rápido con nueva técnica

Un nuevo método para calcular sumas de prefijos (prefix sums) en procesadores ARM Neon ha logrado velocidades de hasta 8.9 mil millones de valores por segundo en un Apple M4, superando significativamente el enfoque tradicional (3.9 mil millones de valores por segundo). La técnica, desarrollada por D

Llamadas a funciones: ¿Cuánto cuestan y cómo optimizarlas?

En programación, es común encadenar funciones, donde una función llama a otra. Aunque esto es una práctica habitual, cada llamada de función tiene un costo en términos de rendimiento. Este artículo explora ese costo y cómo los compiladores pueden optimizarlo a través de una técnica llamada 'inlining