Programar en Linux

Franco Catrin fcatrin en tuxpan.com
Lun Oct 23 14:49:59 CLST 2006


El lun, 23-10-2006 a las 17:36 +0200, Rodrigo Fuentealba escribió:
> El 23/10/06, Alvaro Herrera<alvherre en alvh.no-ip.org> escribió:
> > Rodrigo Fuentealba escribió:
> >
> > > Es más lento desde el punto de vista de ser interpretado en vez de
> > > compilado, pero definitivamente prefiero tener un programa de 10 Kb
> > > interpretado en memoria que uno de 10 Mb compilado...
> >
> > <sarcasmo>
> > Obvio ... es mucho mas conveniente interpretar N veces por segundo un
> > script de 10 kB que requiere un interprete de 10 MB, que ejecutar un
> > programa de 10 MB.
> > </>
> 
> ...que en el caso de compararlo con Java, requiere de una maquina
> virtual que sepa Dios cuánto te va a consumir en memoria. En todo
> caso, si me dieran a elegir entre PHP para Web y otro lenguaje como
> Qt, C, C++, Python, Perl o wxWidgets... mi elección no sería PHP.
> 
> <sarcasmo>
> ...para peor, Dios no sabe Java ni sabe de memoria...
> </>

Pero en vez de hacer suposiciones antojadizas por que no vemos los
numeros reales en vez de tirar cortinas de humo, veamos solo el uso de
la maquina virtual con una aplicacion que no hace nada

fcatrin en shaman:~$ cat Test.java
public class Test {
        public static void main(String args[]) throws Exception {
            while(true) {
                Thread.currentThread().sleep(5000);
            }
        }
}

fcatrin en shaman:~$ javac Test.java
fcatrin en shaman:~$ java Test

[1]+  Stopped                 java Test
fcatrin en shaman:~$ ps aux | grep java
fcatrin   6994  3.1  1.5 215680  7900 pts/1    Tl   14:42   0:00 java
Test
fcatrin en shaman:~$


ohh sorpresa... ocupa casi 8MB de memoria RAM, y tiene mapeado un poco
mas de 200M, seguramente heap inicial + core libraries, de esta forma
evita pedir memoria de a pedacitos cuando necesite.

fcatrin en shaman:~$ ps aux | grep fire
fcatrin   6543  0.4  6.3  97732 32336 ?        Sl   14:24
0:04 /usr/lib/firefox/firefox-bin 

Firefox me esta ocupando mas ram que la maquina virtual

Levantemos ahora un servidor de aplicaciones con algunas aplicaciones
andando, ademas de pool de conexiones a bases de dato, colas de
mensajes, etc.

fcatrin en shaman:~/oc4j$ java -jar oc4j.jar
06/10/23 14:46:25 Oracle Application Server Containers for J2EE 10g
(9.0.4.0.0) initialized

[2]+  Stopped                 java -jar oc4j.jar
fcatrin en shaman:~/oc4j$ ps aux | grep java
fcatrin   7022  8.6  6.2 263468 31884 pts/1    Tl   14:46   0:03 java
-jar oc4j.jar

Con todo listo para operar tenemos casi 32MB de memoria ocupada, y
mapeado un poco mas de 256MB, y con esto ya podemos hacer aplicaciones
escalables, distribuidas, etc.

Como decia Horst.. el hardware es mucho mas barato que las HH, en mi PC
aun tengo 480MB para jugar

Saludos
-- 
Franco Catrin L.       TUXPAN
http://www.tuxpan.com/fcatrin



Más información sobre la lista de distribución Linux