Ayuda con la POO - página 9

 
fxsaber #:

No se trata de mi aplicación. Puedes medirlo a la antigua usanza.

Ya lo hice. Los datos están publicados. Lo intentaré de nuevo en un orden diferente. Pero incluso según tus datos no hay rendimiento por trabajar con un asterisco.
 
Sin embargo, me gustaría escuchar una opinión razonada a favor de trabajar con señales. Todo lo que se ha expresado hasta ahora es: "supuestamente más rápido", "supuestamente obliga al programador a vigilar la memoria y a no asignar espacio innecesario" y "eres un tonto".
 
Vasiliy Sokolov #:
No obstante, me gustaría escuchar una opinión razonada en apoyo del trabajo con punteros. Todo lo que se ha expresado hasta ahora es: "supuestamente más rápido", "supuestamente hace que los programadores vigilen la memoria y no asignen espacio innecesario" y "eres un tonto" - por supuesto.

¿También se confunde la izquierda con la derecha o no?

Es un lío escandaloso en la cabeza. Los punteros son más lentos, no más rápidos. Sobre la necesidad de vigilar la memoria la charla fue en el contexto de las diferencias de estilo de programación en lenguajes con y sin Garbage Collector.

Vasya, no recuerdas qué posición tomaste en la discusión después de 2-3 posts ya, va por aquí y por allá.

 
fxsaber #:

Un ejemplo de un problema potencial sería bueno.

Ihor Herasko #:

Un punto más. Es mejor crear matrices de objetos mediante un puntero. De lo contrario, obtendrá una matriz en la memoria de la pila que es muy baja:

Tenía un ejemplo de agotamiento de la memoria de la pila justo en el caso de la ordenación recursiva con gran cantidad de datos.
El programa se colgó.

Además, se puede utilizar la declaración global y en este caso no se trata de memoria de pila.
¿No estás de acuerdo?

 
Ihor Herasko #:

No es un problema, y mucho menos un problema potencial. Son las peculiaridades del manejo de la memoria en MT. Aquí hay una matriz estática:

Y aquí hay una matriz dinámica:

En este caso todo se compila y funciona.

Estoy de acuerdo, pero nunca he tenido esos volúmenes en mi consulta.
Por lo general, necesito un cálculo rápido de la "cola" de un indicador, por ejemplo, sin llamar a la función incorporada del indicador (de la biblioteca),
, por lo tanto, apliqué un cálculo más rápido basado en fórmulas de los valores del indicador. En este caso, el consumo de memoria en general es muy bajo.
En general, recomiendo este enfoque a todos los desarrolladores en el futuro para ahorrar memoria y tiempo de cálculo de las funciones con punto flotante.
Si es posible, hay que convertir muchos datos en formato de números enteros, ya que acelera mucho el proceso.

P.D.: Por supuesto, lo anterior es un caso de ahorro, por ejemplo, de unos cientos de milisegundos.

 
Dmitiry Ananiev:

Estoy haciendo una clase como esta.

Ahora quiero llamar a un array de objetos:

¿Cómo entonces crear rápidamente un array de objetos si el constructor tiene parámetros a nivel global?

¿Por ejemplo? ¿Crear objetos primero cambiando el constructor y luego cómo reemplazar los objetos con símbolos en OnInit?

¿Quizás haya una solución más fácil?

class Strategy1
{
        Strategy1();
 };

class Strategy2
{
        Strategy (string sym);
}

En la declaración de la clase Strategy2, el nombre del constructor de la clase carece de "2", de lo contrario no es un constructor.