Autor
|
Tema: Sobre consumo de RAM de una aplicacion (Leído 4,052 veces)
|
crazykenny
|
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. https://informaticayotrostemas.blogspot.com/Mi canal de Youtube: https://www.youtube.com
|
|
|
[Case]
|
Necesitamos mas datos, te recomiendo que postes el código fuente.
|
|
|
En línea
|
|
|
|
armizh
Desconectado
Mensajes: 187
His brain caught in a hole...
|
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: git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++: git clone https://github.com/armizh/Hamster
|
|
|
crazykenny
|
Bueno, case, el codigo es esl siguiente: 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. https://informaticayotrostemas.blogspot.com/Mi canal de Youtube: https://www.youtube.com
|
|
|
armizh
Desconectado
Mensajes: 187
His brain caught in a hole...
|
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: git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++: git clone https://github.com/armizh/Hamster
|
|
|
crazykenny
|
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. https://informaticayotrostemas.blogspot.com/Mi canal de Youtube: https://www.youtube.com
|
|
|
armizh
Desconectado
Mensajes: 187
His brain caught in a hole...
|
De nadas espero que te logres lo que deseas. Saludos
|
|
|
En línea
|
Visita mi blog: http://armizh.10h.us/Fnx, fork de FreeNOS: git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++: git clone https://github.com/armizh/Hamster
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Aplicacion sobre aplicacion en pantalla completa xD
Programación Visual Basic
|
spaceboy90
|
1
|
2,635
|
28 Enero 2007, 23:10 pm
por Red Mx
|
|
|
Consumo de recursos en una aplicacion
Programación Visual Basic
|
demoniox12
|
3
|
2,060
|
27 Diciembre 2007, 13:34 pm
por ~~
|
|
|
duda sobre consumo de ram en 64 bits
GNU/Linux
|
rastanthology
|
3
|
3,707
|
12 Julio 2010, 15:37 pm
por luinuz
|
|
|
AYUDA! Tengo una duda sobre el consumo de energía...
« 1 2 »
Hardware
|
SuperDraco
|
10
|
7,358
|
15 Marzo 2011, 04:45 am
por SuperDraco
|
|
|
opiniones sobre el narcotrafico y el consumo de sustancias
« 1 2 »
Foro Libre
|
DJKENSHIN
|
10
|
4,886
|
7 Octubre 2020, 13:49 pm
por @synthesize
|
|