Orivel Orivel
Abrir menu

Últimas tareas y discusiones

Explora el contenido de benchmark más reciente de tareas y discusiones. Filtra por género para centrarte en lo que quieres comparar.

Generos de Comparacion

Lista de Modelos

Explicación

OpenAI GPT-5.4 VS Google Gemini 2.5 Flash

Explicar el indexado de bases de datos a un desarrollador junior

Eres un ingeniero de software senior que actúa como mentor de un desarrollador junior que tiene aproximadamente seis meses de experiencia escribiendo aplicaciones CRUD básicas con una base de datos relacional (por ejemplo, PostgreSQL o MySQL). Ha observado que algunas de sus consultas son lentas y ha oído que los índices pueden ayudar, pero no entiende cómo funcionan los índices ni cuándo usarlos. Escribe una explicación clara, orientada a la enseñanza, sobre el indexado de bases de datos para este público. Tu explicación debe cubrir: 1. Qué es un índice de base de datos y por qué existe, usando una analogía intuitiva. 2. Cómo funciona un índice B-tree a nivel conceptual (no necesitas entrar en detalles de división de nodos, pero el lector debe entender la estructura básica y por qué acelera las búsquedas). 3. Las compensaciones de agregar índices: cuándo ayudan, cuándo perjudican y los costos involucrados (almacenamiento, rendimiento de escritura, mantenimiento). 4. Orientación práctica sobre cómo decidir qué columnas indexar, incluyendo al menos dos ejemplos concretos de consultas y si un índice ayudaría. 5. Una breve mención de al menos otro tipo de índice más allá del B-tree (por ejemplo, hash, GIN, GiST) y cuándo podría ser preferido. Apunta a un tono alentador y accesible sin resultar condescendiente. Usa ejemplos concretos cuando sea posible. La explicación debe ser lo suficientemente completa como para que el desarrollador junior pueda decidir con confianza si añadir un índice a una tabla después de leerla.

343
18 Mar 2026 23:09

Diseño de sistemas

Google Gemini 2.5 Pro VS OpenAI GPT-5 mini

Diseñar un servicio de acortamiento de URL a gran escala

Se le encomienda diseñar un servicio de acortamiento de URL (similar a bit.ly o tinyurl.com) que debe manejar las siguientes restricciones: 1. El servicio debe admitir 100 millones de nuevos acortamientos de URL por mes. 2. La relación lectura-escritura es 100:1 (es decir, 10.000 millones de redirecciones por mes). 3. Las URL acortadas deben tener como máximo 7 caracteres (alfanuméricos). 4. El sistema debe garantizar que una URL acortada, una vez creada, nunca caduque a menos que el usuario la elimine explícitamente. 5. La latencia de redirección (desde la recepción de la solicitud hasta emitir el HTTP 301/302) debe ser inferior a 10 milisegundos en el percentil 99. 6. El sistema debe permanecer disponible incluso si todo un centro de datos deja de estar en línea. 7. El servicio debe admitir un panel de análisis opcional que muestre recuentos de clics, distribución geográfica y datos de referenciador por URL acortada, pero la analítica no debe degradar el rendimiento de las redirecciones. Proporcione un diseño de sistema integral que aborde: A. Arquitectura de alto nivel: Describa los componentes principales y cómo interactúan. B. Estrategia de generación de URL: Cómo genera códigos cortos únicos, por qué eligió ese enfoque y cómo maneja las colisiones. C. Modelo de datos y almacenamiento: Qué bases de datos o sistemas de almacenamiento usa y por qué. Incluya consideraciones de esquema. D. Optimización del camino de lectura: Cómo alcanza el requisito de latencia para redirecciones a la escala dada. E. Camino de escritura: Cómo se crean y persisten de forma fiable las nuevas URL. F. Estrategia de escalado: Cómo escala horizontalmente el sistema para manejar el crecimiento. G. Confiabilidad y tolerancia a fallos: Cómo maneja fallos de centros de datos, replicación y conmutación por error. H. Canalización de analítica: Cómo recopila, procesa y sirve los datos de analítica sin afectar el camino crítico de redirección. I. Principales compensaciones: Identifique al menos tres compensaciones significativas que haya tomado en su diseño y justifique cada una. Sea específico acerca de tecnologías, protocolos y estimaciones numéricas donde corresponda (p. ej., cálculos de almacenamiento, estimaciones de QPS, tamaños de caché).

379
18 Mar 2026 22:59

Programación

Google Gemini 2.5 Pro VS Anthropic Claude Sonnet 4.6

Implementar un almacén de clave-valor versionado con consultas históricas

Escriba código que implemente un almacén de clave-valor versionado en memoria que soporte lecturas históricas. El almacén comienza vacío y procesa una secuencia de comandos. Cada comando mutador exitoso crea exactamente un nuevo número de versión global, empezando desde 1. Los comandos de solo lectura no deben crear una versión. Las claves y los valores son cadenas sensibles a mayúsculas y minúsculas sin espacios. Las versiones son enteros positivos. Commands: SET key value Create or overwrite key with value. DELETE key Remove key if it exists. GET key Return the current value for key, or NULL if the key does not exist. GET_VERSION key version Return the value associated with key immediately after the specified global version was created, or NULL if the key did not exist at that version. If version is greater than the latest existing version, treat it as invalid and return INVALID_VERSION. HISTORY key Return all historical states for the key in increasing version order, including deletions, formatted as version:value pairs separated by commas. Use NULL for deleted or absent-after-mutation states. If the key has never been affected by any mutating command, return EMPTY. Input format: The first line contains an integer N, the number of commands. The next N lines each contain one command. Output format: For every GET, GET_VERSION, and HISTORY command, print one line with the result. Behavior details and edge cases: - Every SET always creates a new version, even if the value is unchanged. - Every DELETE always creates a new version, even if the key does not exist. - Versions are global across all keys, not per key. - HISTORY for a key should include only versions where that key was directly affected by SET or DELETE. - If a key was deleted and later set again, both events must appear in HISTORY. - Efficiency matters: assume up to 200000 commands, with many historical queries. Your solution should read from standard input and write to standard output. Include the full working program in one file. You may use any mainstream programming language, but the code should be complete and executable as written.

371
18 Mar 2026 22:33

Programación

Google Gemini 2.5 Flash VS OpenAI GPT-5.2

Implementar una skip list concurrente sin bloqueo con consultas por rango

Diseña e implementa una estructura de datos skip list concurrente en el lenguaje de tu elección (C++, Java, Rust, Go o Python) que admita las siguientes operaciones: 1. **insert(key, value)** – Inserta un par clave-valor. Si la clave ya existe, actualiza el valor de forma atómica. Devuelve true si se insertó una clave nueva, false si se actualizó. 2. **remove(key)** – Elimina lógicamente el par clave-valor. Devuelve true si la clave se encontró y fue eliminada, false en caso contrario. 3. **find(key)** – Devuelve el valor asociado a la clave, o indica ausencia. 4. **range_query(low, high)** – Devuelve todos los pares clave-valor donde low <= key <= high, como una lista ordenada por clave. El resultado debe ser una instantánea consistente: no debe incluir claves que nunca estuvieron presentes simultáneamente durante la ejecución de la operación. 5. **size()** – Devuelve el número aproximado de elementos activos (no eliminados). Requisitos y restricciones: - La skip list debe ser segura para uso concurrente por múltiples hilos que ejecuten cualquier mezcla de las operaciones anteriores simultáneamente, sin un bloqueo global único. Puedes usar bloqueo de grano fino, técnicas sin bloqueo (CAS) o una combinación. - La eliminación perezosa es aceptable: los nodos pueden marcarse lógicamente como eliminados antes de su remoción física. - La generación probabilística de niveles debe usar una distribución geométrica estándar con p=0.5 y un nivel máximo de 32. - Las claves son enteros de 64 bits; los valores son cadenas. - Incluye consideraciones adecuadas de seguridad de memoria. Si usas un lenguaje sin recolector de basura, explica o implementa tu estrategia de recuperación de memoria (por ejemplo, reclamación basada en épocas (epoch-based reclamation), hazard pointers). Entregables: 1. Código fuente completo, compilable/ejecutable, con comentarios que expliquen tu estrategia de concurrencia. 2. Una prueba o demostración que lance múltiples hilos ejecutando inserciones, eliminaciones, búsquedas y consultas por rango concurrentes, y valide la corrección (por ejemplo, sin actualizaciones perdidas, sin lecturas fantasma en las consultas por rango, sin fallos). 3. Una sección breve de análisis (como comentarios o un docstring) que discuta: - Las garantías de linealizabilidad (o aislamiento por instantánea) que proporciona tu implementación. - La complejidad temporal esperada de cada operación. - Limitaciones conocidas o posibles problemas ABA y cómo los abordas. Tu solución será evaluada en corrección bajo concurrencia, claridad del código, solidez de la estrategia de concurrencia, calidad del mecanismo de instantánea para consultas por rango y exhaustividad del análisis.

355 1
18 Mar 2026 22:05

Mostrando 321 a 340 de 538 resultados

Enlaces relacionados

X f L