25/04/2015, 04:34
|
(Desactivado) | | Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 9 meses Puntos: 31 | |
Respuesta: Migracion de Swing o Migracion de Java ?? acuérdate de que puedes usar la papelera de memoria de java (garbage collector). A parte de cuando el programa lo ejecuta de forma automática, también puedes forzar tú cuando quieras el usarlo para liberar el espacio en memoria de los objetos que ya no estén en uso.
Migrar a c++ no te va a arreglar el problema. Si en tu esquema del programa estás manteniendo objetos en memoria que ya no usas, pero que no puedes borrar porque según tu organigrama aún son accesibles... te va a dar igual cambiar de lenguaje, en ese nuevo lenguaje te va a pasar lo mismo.
Ejemplo: Si usas una variable en un único método de una clase que hayas creado tú... no la pongas como variable global en esa clase, sino como variable local del método. Así cuando el método termine de ejecutarse, la variable desaparece. Mientras que si es global seguirá en memoria mientras exista un objeto de dicha clase. Un ejemplo de forma antigua de trabajar y que aún se usa mucho son los POJO (métodos setVariable y getVariable) en el que no se mide para qué se usan dichas variables... y se ponen absolutamente todas como globales. Si un objeto persona tiene el método saltar, la característica impulso vertical es única para ese método saltar, y para ningún otro método. Ni para el método comer, ni andar, ni crecer ni nadar. Solución: busca cosas comunes a todos los métodos o como mínimo para 2 de ellos a través de los cuales puedas deducir las características individuales de los métodos. Por ejemplo fuerzaPiernas como variable global te sirve para deducir las variables locales impulso vertical para saltar, velocidad de movimiento en el agua para nadar y resistencia al cansancio para andar. No importa que uses más o menos variables locales en métodos que utilizarás solo a ratos... porque cuando salgas de la piscina todas las variables locales de nadar desaparecen. Sin embargo es conveniente que te acostumbres a ahorrar variables allá donde puedas, porque hay veces que un objeto, o un método dura más tiempo ejecutándose, o el método está más tiempo en ejecución y por lo tanto todo lo que ese método incluya estará en memoria. Por lo tanto todas sus variables estarán en memoria.
Ejemplo simple de ahorro de memoria:
String variableInnecesaria= "hola";
variableInnecesaria=variableInnecesaria+ " y adiós."
system.out.println (variableInnecesaria);
Ejemplo mejorado:
system.out.println ("hola"+" y adiós");
Yo muchas veces uso variables así para aclararme yo con mi código. Pero una vez que tengo mi código funcionando elimino las variables que veo innecesarias porque se puede usar directamente la operación en la llamada al método, sin usar variables... así ahorro espacio en memoria.
Este ejemplo es muy simple... pero realmente a veces se pueden llegar a ahorrar variables que llegan a ocupar mucho espacio porque almacenan datos provenientes de muchos métodos, objetos, etc... cuando si lo piensas bien te puedes llegar a ahorrar dichas variables, y juntar los distintos datos directamente en el sitio donde usarías la variable que previamente los hubiese juntado.
El resultado sin variables es más lioso de entender. Y si vuelves a tu código sin variables después de un tiempo no te enteras de nada. Pero oye... la solución que yo encontré para eso... es comentar mis propios códigos. Nunca se sabe cuando se van a volver a necesitar ciertas clases, ciertos códigos para futuros programas.
Con respecto a usar un lenguaje u otro... yo no creo que haya un lenguaje universal que se pueda decir que para el 100% de los programas sea el mejor lenguaje. Cada uno va mejor para según su finalidad y el modo y entorno en el que se vaya a usar. Yo no usaría java para un programa de gestión destinado a usarse en clientes que nunca serán otra cosa que Windows y que atacarán a servidores y servicios que nunca serían otra cosa que productos Microsoft. En ese caso usaría .NET. Y java por otro lado tampoco se lleva demasiado bien con imágenes 3D... sin embargo, hay veces en las que java es el lenguaje que mejor se adecúa a tus necesidades. Y una de sus características más decisivas para usar java es que no hay que tocar ni 1 sola línea de código para cambiar de sistema operativo. Ya es la máquina virtual de java la que traduce.
Última edición por Kritik; 25/04/2015 a las 05:52 |