¿Cuáles son algunas intuiciones detrás de la estimación de cuánto tiempo lleva ejecutar un fragmento de código?

Supongo que depende del tamaño de los objetos y obviamente del número de objetos que se insertarán en la matriz. Personalmente, no me gusta la OOP en parte debido a los problemas de rendimiento, pero principalmente no veo la razón de la OOP y encuentro que la técnica es engorrosa e hinchada. Usaría un lenguaje que no sea OOP si tuviera la opción.

Sin embargo, como regla general, si tiene un número finito de “objetos” para colocar en una matriz, use una metodología que pueda llenar la matriz lo más rápido posible, idealmente con asignación directa de campos. El mecanismo utilizado para realizar las asignaciones en OOP tiene problemas de rendimiento integrados (paso de mensajes, llamadas de subrutina, etc.) y casi se garantiza que tomarán más tiempo que la asignación directa.

Podría escribir un pequeño programa de prueba para crear un gran número (digamos 1000) de objetos pequeños y llenar una matriz de tamaño fijo utilizando un lenguaje OOP. Podrías ver cuánto tiempo se tardó en ejecutarse, digamos 10,000 veces. Vuelva a escribir el programa de prueba como un programa imperativo o de procedimiento y repita los tiempos. Esto le dará al menos una idea de los costos de rendimiento involucrados.

More Interesting

¿En qué se diferencian BSD, Unix y Linux?

¿Es válido el concepto de ingeniero 10x? Específicamente, ¿es este multiplicador defendible? ¿Hay datos que sugieran que los mejores ingenieros son 10 veces mejores que los ingenieros normales, a diferencia de 3x o 100x?

¿Qué software existe para la autoayuda en línea del cliente que le permitirá al cliente ingresar una pregunta en su lenguaje natural, y el software encontrará artículos que respondan esa pregunta desde una base de datos de cientos de artículos de ayuda no categorizados?

¿Cuáles son las últimas tendencias en ingeniería de software?

Cómo configurar un entorno Golang para un corredor compartido de GitLab CI

¿Los programadores autodidactas (sin ningún entrenamiento formal de CS en la escuela) son mejores o peores en la programación que los programadores tradicionalmente educados?

¿Qué es lo mejor que has hecho en un hackathon?

¿Cuál es el mejor software para vivir MCX?

¿Cuáles son los fundamentos para un programa de grado SE?

¿Qué es el mantenimiento en ingeniería de software?

¿Cómo es la pasantía en ESPN en el departamento de Tecnología de la Información?

¿Cómo se empieza a aprender programación backend?

¿Son mejores las bibliotecas GUI en C ++ o Python?

¿Qué producto de software utiliza el algoritmo más complicado?

¿Es posible escribir software libre de errores? ¿Qué tan buenos somos para atrapar todas las posibles excepciones? ¿Debemos prestar más atención a cada escenario de excepción o falla? ¿Es ese el problema fundamental? ¿Eso merece su propia línea de trabajo?