Ver Mensaje Individual
  #10  
Antiguo 11-09-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile Riesgo de incompatibilidad

¡Hola a todos!


Cita:
Empezado por jachguate
...El "Ahora", puede malinterprestarse en este caso... pues la posibilidad de alinear o no alinear los registros en memoria ha existido desde al menos turbo pascal 6...
Tienes razón, tal vez se entendió que esa característica nació en Delphi. Sé que la alineación de tipos estructurados existía ya en algunas versiones de Turbo Pascal, desde que, debido a las nuevas y mayores capacidades de almacenamiento y la cada vez mayor exigencia de velocidad en las aplicaciones, se volvía conveniente sacrificar unos pocos bytes en favor de ésta última.


Cita:
Empezado por jachguate sobre la recomendación de usar "Packed" para almacenamiento en disco
...
Yo no me atrevería a decir categóricamente que es lo recomendable... en cada caso habrá que evaluar si conviene mas perder unos cuantos bytes por registro en el disco y la memoria, a cambio de mayor eficiencia de programa o si por el contrario, es mas importante ahorrar bytes sacrificando desempeño...
Cuando se trata de almacenamiento en disco, se presenta un problema más importante aún: el de la compatibilidad, por ello la recomendación que la propia Borland hace:
Cita:
Empezado por Ayuda de Delphi 7
...Because data alignment can change, it's a good idea to pack any record structure that you intend to write to disk or pass in memory to another module compiled using a different version of the compiler.
Desde luego, aún con esto en mente, algunos desarrolladores preferirán ignorar la recomendación argumentando que los archivos nunca serán accedidos por otras aplicaciones (cuyas reglas de alineación podrían ser diferentes) o que la única aplicación que los usa nunca volverá a ser compilada con versiones posteriores del lenguaje (donde las reglas de alineación podrían cambiar). Pero ya sabemos que nunca es una palabra maldita en programación . En fin, es cuestión de poner en la balanza la oportunidad de desempeño contra el riesgo de incompatibilidad.


Un abrazo balanceado.

Al González.
Responder Con Cita