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