Errores, fallos, preguntas - página 2873

 


Fallo en la carga de EX5
 

Error crítico durante la ejecución

struct pack(8) A {
typedef void (*fn)();
        fn f;
};
void OnStart() {}

Resultado: la carga de EX5 ha fallado

 
A100:

¿Afecta la alineación de las estructuras a la velocidad de ejecución?

 
fxsaber:

¿Afecta la alineación de las estructuras a la velocidad de ejecución?

Lo hace en algunos casos, aquí hay una cita:"En la mayoría de los casos no necesita preocuparse por la alineación ya que la alineación por defecto ya es óptima.Pero en algunos casos se puede conseguir una mejora significativa del rendimiento o un ahorro de memoria especificando una alineación personalizada para las estructuras de datos".

 
A100:

Lo hace en algunos casos, aquí hay una cita:"En la mayoría de los casos no hay que preocuparse por la alineación porque la alineación por defecto ya es óptima.Sin embargo, en algunos casos se pueden conseguir importantes mejoras de rendimiento o ahorros de memoria especificando una alineación personalizada para las estructuras de datos."

Sólo un ejemplo de ello.

 
fxsaber:

Al menos un ejemplo de ello.

Tengo la alineación por necesidad - cita de la documentación:"La alineación de los campos de la estructura puede ser necesaria cuando se intercambian datos con bibliotecas de terceros (*.DLL), en las que se aplica dicha alineación".

Intenta calibrar todos los valores del pack y compara la velocidad

 
A100:

Intenta apostar por todos los valores del pack y compara las velocidades.

Tenemos que decidir qué código medir.

Si he entendido bien, no se proporciona la alineación de la clase. Es decir, es muy posible que al trabajar con un array de objetos de clase (no punteros), sea razonable sustituir los campos de clase por una estructura alineada.

De todos modos, no estoy en el tema.

 
fxsaber:

Si he entendido bien, no se proporciona la alineación de la clase. Es decir, es posible que al trabajar con un array de objetos de clase (no punteros), sea razonable sustituir los campos de clase por una estructura alineada.

Ahora he probado las clases de paquetes - el tamaño cambia

 

Una pregunta sobre la compra de una biblioteca (no un asesor) de Market.

Quiero utilizar la biblioteca en mi investigación. En consecuencia, debería funcionar en cualquier cuenta y terminal.

¿Es esto posible para las bibliotecas del mercado?

 
fxsaber:

Al menos un ejemplo de ello.

Dudo que mucha gente utilice la optimización de datos hoy en día, en la mayoría de los desarrolladores de juegos, pero incluso allí todo el mundo tiene sus propios motores de juego listos que ya están optimizados

buscó por ahí, imho si hay alguna recomendación específica, yo buscaría aquíhttps://www.ibm.com/support/knowledgecenter/ru/

trató de buscar, pero no funcionó - hay muchas variantes de consultas, aquí está más cerca del temahttps://www.ibm.com/support/knowledgecenter/ru/ssw_aix_72/performance/cache_tlbs.html

He buscado "paquete de estructura" y "rendimiento de estructura".



si lo compruebas, debe ser una estructura pod y tienes que escribirla lo más distorsionada posible, es decir, coges todos los tipos de datos (long, int, short, char,double,float) y creas 15 campos y mezclas los campos por tipos de datos, para poder alinear estos campos con la directiva pack al menos en el límite de la palabra del ordenador

También puede intentar copiar estructuras, pasarlas como parámetros a funciones y cambiar el contenido de los campos


pero, en mi opinión, habrá una diferencia palpable si el tamaño total de dichos datos (matriz de estructuras) es de al menos un par de megabytes para llenar la caché del procesador lo máximo posible