C++ y librerías dinámicas
|
|
Por runlevel0
departamento C++_dudas_existenciales , Sección Desarrolladores Puesto a las Sun Aug 11th, 2002 at 12:43:04 PM CET
|
|
Me he pasado recientemente de C a C++.
Algunas cosas me han llamado la atención y me han surgido algunas incógnitas sobre librerías dinámicas, los objetos y la propia estructura POO.
Bien, mis preguntas puede que sean un poco curiosas y no sé muy bien cómo enfocarlas.
|
No me ha costado mucho entender la filosofía subyacente a la POO, cada objeto encapsulado, etc, etc..
Pero hay algunos conceptos que se me resisten:
Quiero crear un programa para trabajar con ficheros (concretamente /usr/src/linux/.config y /etc/X11/XF86Config-4). Se trata de cosas muy símples y estándar con la librería fstream, nada del otro mundo...
Se me ocurrió la idea de que para modularizar el código al máximo podría echar mano de la carga dinámica de librerías y la verdad es que tanto su uso en los programas, como su creación mediante libtool o ld es bastante asequible y no exige mucho trabajo.
La ventaja que yo le veo es que metiendo mis funciones en libs dinámicas puedo andar metiéndoles mano individualmente sin tener que retocar el resto del código. Así si meto las funciones para editar los ficheros en una lib, la cargo dinámicamente con las funciones de la libdl dlopen(), dlsym() y amigos diréctamente dónde la vaya a usar y la cierro explícitamente cuando no la necesite.
Y si quiero cambiar las funciones de una librería puedo meterle mano a este código y recompilar sólo la librería. Como no uso nada demasaido exótico, no habría en principio demasiados problemas, ni siquiera necesito punteros...
Bueno, mi duda es la siguiente:
¿Como afecta esto al tamaño del binario, la cantidad de RAM requerida y las prestaciones?
Evidentemente la carga de la librería y su descarga necesitarán tiempo y supongo que creando las diferentes clases en archivos separados podría también editar archivos individuales (aunque tenga que recompilar todo de nuevo). Y supongo que en velocidad ganará más si todo termina dentro del mismo binario que teniendo que cargar librerías cunado se necesiten...
¿O me equivoco?
Dadme una pista, oh Guruses, antes de que me meta en camisa de once varas y cree algo totalmente infumable ;)
|
|
|