¡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.