elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Sobre consumo de RAM de una aplicacion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Sobre consumo de RAM de una aplicacion  (Leído 2,872 veces)
crazykenny


Desconectado Desconectado

Mensajes: 3.998



Ver Perfil WWW
Sobre consumo de RAM de una aplicacion
« en: 4 Febrero 2012, 21:17 pm »

Hola; el caso es que, mientras estaba haciendo unas pruebas en un servidor tipo tienda "a lo cutre" en el que la gente puede hacerme pedidos de cartas de magic, yugioh, y world of warcraft añadiendole una serie de hipoteticos usuarios, pues he visto que el programa "falla" cuando le pongo la cantidad de 60000 usuarios (a decir verdad, un poco menos); entonces, como supuse que el consumo de memoria RAM no llegaba al 100%, o, mejor dicho, a menos del 100%, en el sentido de, por ejemplo, le ponia 40000 usuarios, y el consumo de RAM estaba sobre el 40% (con 1,1 GB de uso de RAM); en 50000 usuarios, sobre el 55% (con 1,3 GB de uso de RAM), y en 60000, el programa peta; cabe destacar que tengo 5GB de RAM, y aun me queda sobre los 2 GB de RAM, y me extraña que el programa, antes de llenar una determinada cantidad X de RAM se cuelgue, y la pregunta viene a ser a que se debe el hecho de que el programa que he hecho se cuelgue al añadirle tal cantidad de usuarios, si no es molestia, claro esta.
Gracias por vuestra atencion, y me disculpo por las molestias causadas.
Saludos.


En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/
[Case]


Desconectado Desconectado

Mensajes: 474



Ver Perfil WWW
Re: Sobre consumo de RAM de una aplicacion
« Respuesta #1 en: 5 Febrero 2012, 00:59 am »

Necesitamos mas datos, te recomiendo que postes el código fuente.


En línea

armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: Sobre consumo de RAM de una aplicacion
« Respuesta #2 en: 5 Febrero 2012, 02:20 am »

Aún sin saber datos, estoy seguro que el programa en cuestion esta almacenando los usuarios (y sus datos) en variables, matrices o arrays. ¿Como puedo estar tan seguro? a mi me pasa lo mismo cuando almaceno cadenas multimensionales tipo char[256][256], almaceno como máximo 32 de esta matriz. Supongo que el programa lo creaste tu (ya que esta posteado en la sección de programación general) y te recomiendo que uses alguna base de datos en vez de almacenarlos en alguna variable de cualquier tipo (llamece array, matriz, estructura, etc).
Saludos.
En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
crazykenny


Desconectado Desconectado

Mensajes: 3.998



Ver Perfil WWW
Re: Sobre consumo de RAM de una aplicacion
« Respuesta #3 en: 5 Febrero 2012, 11:41 am »

Bueno, case, el codigo es esl siguiente:
Código:
Graphics 1024,768,32,2
Cls
Locate 0,0
Print "Inserte la contraseña de administrador:"
Print "(No inserte nada para salir)"
pass$=Input()
Cls
Locate 0,0
If pass$=""
End
EndIf
users#=-1
general$=CurrentDir()+"general\"
pedidos$=CurrentDir()+"pedidos\"
gasto_usuarios$=CurrentDir()+"gastos\"
dat_users$=CurrentDir()+"datos_usuarios\"
If FileType(dat_users$)=0
CreateDir dat_users$
EndIf
info_users$=dat_users$+"archivo de usuarios.dat"
.actualizar_users
If FileType(pedidos$)=0
CreateDir pedidos$
EndIf
If FileType(info_users$)=1
fileout=ReadFloat(info_users$)
param_users#=ReadFloat(fielout)
If param_users#>0
Dim lista_param_users$(param_users#)
param_users#=param_users#-1
For tr#=0 To param_users#
dat$=ReadString(feout)
lista_param_users$(tr#)=dat$
Next
EndIf
users#=ReadFloat(fileout)
If users#>0
users#=users#-1
Dim gastado_users#(users#)
param_users#=param_users#-1
Dim listado_users$(users#,1)
Dim compras_users#(users#,productos#,2)
Dim parametros_users$(users#,param_users#)
For tr#=0 To users#
dat$=listado_users$(tr#,0)
dat_b$=info_users$+dat$+".dat"
If FileType(dat_b$)=1
fileout=ReadFile(dat_b$)
For trr#=0 To param_users#
dat_c$=ReadString(fileout)
parametros_users$(tr#,trr#)=dat_c$
Next
CloseFile(fileout)
EndIf
dat_b$=dat_users$+dat$+".dat"
If FileType(dat_b$)=1
fileout=ReadFile(dat_b$)
opciones#=ReadFloat(fileout)
gastado_users#(tr#)=opciones#
CloseFile(fileout)
EndIf
dat_b$=pedidos$+dat$+".dat"
If FileType(dat_b$)=1
fileout=ReadFile(dat_b$)
For trx#=0 To productos#
For t=0 To 2
opciones#=ReadFloat(fileout)
compras_users#(tr#,trx#,t)=opciones#
Next
Next
CloseFile(fileout)
EndIf
Next
EndIf
EndIf
.actualizar_productos
If FileType(general$)=0
Cls
Locate 0,0
Print "Se ha producido un error; no existe una carpeta con"
Print "los datos basicos de las categorias, subcategorias y"
Print "productos."
Print "Pulse una tecla para salir del programa."
WaitKey()
End
EndIf
general_b$=general$+"categorias_y_productos.dat"
dispo$=general$+"disponibilidad.dat"
If FileType(general_b$)=0
Cls
Locate 0,0
Print "Se ha producido un error; no existe un archivo con"
Print "los datos basicos de las categorias, subcategorias y"
Print "productos."
Print "Pulse una tecla para salir del programa."
WaitKey()
End
EndIf
If FileType(dispo$)=0
Cls
Locate 0,0
Print "Se ha producido un error; no existe un archivo con"
Print "los datos de disponibilidad de los productos."
Print "Pulse una tecla para salir del programa."
WaitKey()
End
EndIf
general_b$=general$+"categorias_y_productos.dat"
dispo$=general$+"disponibilidad.dat"
If FileType(general_b$)=1
fileout=ReadFile(general_b$)
dat$=ReadString(fileout)
dat$=ReadString(fileout)
categorias#=ReadFloat(fileout)
If categorias#>0
categorias#=categorias#-1
Dim lista_categorias$(categorias#)
For tr#=0 To categorias#
dat$=ReadString(fileout)
lista_categorias$(tr#)=dat$
Next
EndIf
subcategorias#=ReadFloat(fileout)
If subcategorias#>0
subcategorias#=subcategorias#-1
Dim lista_subcategorias$(subcategorias#,1)
For tr#=0 To subcategorias#
For t=0 To 1
dat$=ReadString(fileout)
lista_subcategorias$(tr#,t)=dat$
Next
Next
EndIf
productos#=ReadFloat(fileout)
If productos#>0
productos#=productos#-1
Dim lista_productos$(productos#,4)
For tr#=0 To productos#
For t=0 To 4
dat$=ReadString(fileout)
lista_productos$(tr#,t)=dat$
Next
Next
productos#=productos#+1
EndIf
beneficios#=ReadFloat(fileout)
Dim ben_adic$(beneficios#)
If productos#>0
productos#=productos#-1
fileout=ReadFile(dispo$)
Dim dispo_prod#(productos#)
For tr#=0 To productos#
opciones#=ReadFloat(fileout)
dispo_prod#(tr#)=opciones#
Next
CloseFile(fileout)
EndIf
EndIf
If x=1
x=0
Print "Datos de productos de tienda actualizados."
Goto recibir_signal
EndIf
svrgame=CreateTCPServer(8080)
If svrgame=0
Print "No ha sido posible crear el servidor de tienda."
Print "Pulse una tecla para salir del programa."
WaitKey()
End
EndIf
x=0
While Not KeyHit(1)
.recibir_signal
strstream=AcceptTCPStream(svrgame)
If strstream=0
Goto recibir_signal
EndIf
ip$=TCPStreamIP(strstream)
daty$=ReadString(strstream)
y#=0
.porty
y#=y#+1
opciones#=Left$(daty$,y#)
If opciones#=opciones_b#
puerto_envio#=opciones#
puerto_envio_b$=Left$(daty$,y#)
Goto comprovacional
EndIf
opciones_b#=Left$(daty$,y#)
Goto porty
.comprovacional
If Instr( daty$,"actualizardatos")>0
If daty$=puerto_envio_b$ + "0 " + "admin " + pass$ + " actualizardatos"
x=1
Print "Actualizando datos."
Goto actualizar_productos
EndIf
EndIf
If Instr( daty$,"actualizarusers")>0
If daty$=puerto_envio_b$ + "0 " + "admin " + pass$ + " actualizarusers"
x=1
Goto actualizar_users
EndIf
EndIf
If Instr( daty$,"precio")>0
For trr#=0 To productos#
datz$=puerto_envio_b$ + "0 " + trr# + " " + "precio"
If daty$=datz$
opciones#=lista_productos$(trr#,4)
tcp2=OpenTCPStream(ip$,puerto_envio#)
WriteFloat tcp2,opciones#
CloseTCPStream tcp2
EndIf
Next
EndIf
If Instr( daty$,"cantidad")>0
For trr#=0 To productos#
datz$=puerto_envio_b$ + "0 " + trr# + " " + "cantidad"
If daty$=datz$
xas#=0
xaso#=0
For ou#=0 To users#
For tc=0 To 1
xaso#=compras_users#(ou#,trr#,tc)
xas#=xas#+xaso#
Next
Next
dispos#=dispo_prod#(trr#)-xas#
tcp2=OpenTCPStream(ip$,puerto_envio#)
If tcp2<>0
Goto envio_00
EndIf
Goto recibir_signal
.envio_00
WriteFloat tcp2,dispos#
CloseTCPStream tcp2
EndIf
Next
EndIf
If users#=-1
Goto recibir_signal
EndIf
If Instr( daty$,"pedir")>0
For tr#=0 To users#
For trr#=0 To productos#
opciones_b#=dispo_prod#(trr#)
For trrr#=0 To opciones_b#
If daty$=puerto_envio_b$ + "0 " + listado_users$(tr#,0) + " " + listado_users$(tr#,1) + " " + trr# + " " + "pedir " + trrr#
xas#=0
xaso#=0
For ou#=0 To users#
For tc=0 To 1
xaso#=compras_users#(ou#,trr#,tc)
xas#=xas#+xaso#
Next
Next
dispos#=dispo_prod#(trr#)-xas#
If trrr#>dispos#
tcp2=OpenTCPStream(ip$,puerto_envio#)
If tcp2<>0
Goto envio_01
EndIf
Goto recibir_signal
.envio_01
WriteString tcp2,"fallo"
CloseTCPStream tcp2
Goto recibir_signal
EndIf
opy#=compras_users#(tr#,trr#,0)
compras_users#(tr#,trr#,0)=trrr#+opy#
tcp2=OpenTCPStream(ip$,puerto_envio#)
WriteString tcp2,"completo"
CloseTCPStream tcp2
dat$=listado_users$(tr#,0)
dat_b$=pedidos$+dat$+".dat"
fileout=WriteFile(dat_b$)
For trx#=0 To productos#
For t=0 To 2
opciones#=compras_users#(tr#,trx#,t)
WriteFloat(fileout,opciones#)
Next
Next
CloseFile(fileout)
EndIf
Next
Next
Next
EndIf
If Instr( daty$,"eliminar")>0
For tr#=0 To users#
For trr#=0 To productos#
opciones_b#=dispo_prod#(trr#)
opciones_b#=compras_users#(tr#,trr#,0)
For trx#=0 To opciones_b#
If daty$=puerto_envio_b$ + "0 " + listado_users$(tr#,0) + " " + listado_users$(tr#,1) + " " + trr# + " " + "eliminar " + trx#
opciones#=opciones_b#-trx#
tcp2=OpenTCPStream(ip$,puerto_envio#)
If tcp2<>0
Goto envio_02
EndIf
Goto recibir_signal
.envio_02
WriteString tcp2,"hecho"
CloseTCPStream tcp2
EndIf
Next
Next
Next
EndIf
Wend
Por otra parte, armizh, en lo de la base de datos de cualquier tipo, ¿como se hace?; me disculpo por mi ignorancia y demas, pero lo que se me ocurrio es, en vez de guardarlo todo en una matriz, es guardar todos los datos en archivos pequeños y luego acceder a ellos con los datos que me envian a traves de la red y demas; ¿es correcto?.
Saludos.
En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/
armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: Sobre consumo de RAM de una aplicacion
« Respuesta #4 en: 5 Febrero 2012, 12:18 pm »

Por otra parte, armizh, en lo de la base de datos de cualquier tipo, ¿como se hace?; me disculpo por mi ignorancia y demas, pero lo que se me ocurrio es, en vez de guardarlo todo en una matriz, es guardar todos los datos en archivos pequeños y luego acceder a ellos con los datos que me envian a traves de la red y demas; ¿es correcto?.
Saludos.
Pues so, eso podria funcionar, oero seria muy inseguro ya que se podria acceder facilmente desde cualquier computador. Sobre la base de datos, pues yo no se usarlas xd pero no debe ser dificil, algunas como MySQL tienen un gran numero de usuarios y una comunidad enorme, por lo que seria simplemente buscar en google o bing "usar mysql en <lenguaje de tu programa>"

Saludos
En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
crazykenny


Desconectado Desconectado

Mensajes: 3.998



Ver Perfil WWW
Re: Sobre consumo de RAM de una aplicacion
« Respuesta #5 en: 5 Febrero 2012, 13:49 pm »

Gracias por el consejo y por tu ayuda, armizh.
Saludos.
En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/
armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: Sobre consumo de RAM de una aplicacion
« Respuesta #6 en: 5 Febrero 2012, 14:06 pm »

De nadas :) espero que te logres lo que deseas.
Saludos
En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Aplicacion sobre aplicacion en pantalla completa xD
Programación Visual Basic
spaceboy90 1 1,857 Último mensaje 28 Enero 2007, 23:10 pm
por Red Mx
Consumo de recursos en una aplicacion
Programación Visual Basic
demoniox12 3 1,409 Último mensaje 27 Diciembre 2007, 13:34 pm
por ~~
duda sobre consumo de ram en 64 bits
GNU/Linux
rastanthology 3 2,802 Último mensaje 12 Julio 2010, 15:37 pm
por luinuz
AYUDA! Tengo una duda sobre el consumo de energía... « 1 2 »
Hardware
SuperDraco 10 5,400 Último mensaje 15 Marzo 2011, 04:45 am
por SuperDraco
opiniones sobre el narcotrafico y el consumo de sustancias « 1 2 »
Foro Libre
DJKENSHIN 10 1,923 Último mensaje 7 Octubre 2020, 13:49 pm
por @synthesize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines