Comprimir proceso en la RAM

Iniciado por z3nth10n, 24 Julio 2013, 17:35 PM

0 Miembros y 2 Visitantes están viendo este tema.

SγиtαxEяяoя

:huh: :huh: Hace un par de dias tube una pelea aqui en el foro, y ahora otra  :silbar: :silbar: la programacion nos esta volviendo locos  >:D


z3nth10n

El problema ya lo solucione y es que SkypeLib no tiene dispose para sus objetos.

Interesados hablad por Discord.

43H4FH44H45H4CH49H56H45H

Y cual fue la solución  :huh:
Claro, si es que la hiciste personalmente y no la copiaste de algun lado   :-X

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

z3nth10n

Aún no la he hecho, tengo pensado hacer que cada 200 contactos la app se renicie y libere la memoria acumulada y siga con el proceso. :P

Interesados hablad por Discord.

Eleкtro

#14
Cita de: Ikillnukes en 25 Julio 2013, 22:35 PMtengo pensado hacer que cada 200 contactos la app se renicie y libere la memoria acumulada y siga con el proceso. :P

. . .

Parece que lo que te digan no sirve para nada, déjate de chorradas de reiniciar procesos o comprimir kiwis en la RAM,
lee de nuevo el comentario de Kubox, porque como último recurso no necesitas más, lee acerca de la class "GC" (garbage collector) http://msdn.microsoft.com/en-us/library/system.gc%28v=vs.80%29.aspx

...Encima ayer te pasé un código por privado, por skype, incluso te di instrucciones, era un snippet, y era muy eficaz, ¿Lo has intentado usar?.

Saludos...








43H4FH44H45H4CH49H56H45H

A preguntas tontas...

Cita de: Ikillnukes en 24 Julio 2013, 17:35 PMAgregue cosa de 2000 y cuando terminó de agregar gente, el proceso el exe pesaba cosa de 970 mb en la ram... Ya se que si comprimo el proceso, va a aumentar el rendimiento del procesador...

Hay alguna forma?

Respuestas tontas...

Cita de: Ikillnukes en 25 Julio 2013, 22:35 PM
Aún no la he hecho, tengo pensado hacer que cada 200 contactos la app se renicie y libere la memoria acumulada y siga con el proceso. :P

:rolleyes:

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

raul338

Dim a As Object
A =  New ....

.......
A.Dispose() ' siempre que se pueda
A = Nothing


Sent from my LG-E612g

X3R4CK3R

Cita de: Ikillnukes en 25 Julio 2013, 22:35 PM
Aún no la he hecho, tengo pensado hacer que cada 200 contactos la app se renicie y libere la memoria acumulada y siga con el proceso. :P


A ver, si lo que quieres es hacer una aplicación/script que te haga lo que quieras, como chapuza va "bien", si realmente quieres ser buen programador, vas horriblementa mal encaminado. Vale que puedas ser programador novel (no lo sé), pero realmente no es difícil optimizar lo que quieres, solo tienes que liberar la memoria que utilizas, almacenar los contactos de forma tempornal, suponiendo que los lees de un archivo y lo importas con la API de Skype, que tampoco ha quedado muy claro qué hace tu código...
Debes saber que los tipos de variables se destruyen (y por lo tanto, liberan memoria) al cerrar el bracket (o llave ({ y })) donde se declara, a diferencia de los punteros, que son construidos con el operador new y destruídos con delete, no es nada difícil, solo tienes que dar el paso, estudiarlo y dominarlo.

Un saludo

z3nth10n

#18
Claro, mirad:

Código (vbnet) [Seleccionar]
Imports SKYPE4COMLib
Imports System.IO

Public Class frmMain

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


        'Dim pUser As SKYPE4COMLib.User
        Dim total As Integer = ListBox1.Items.Count

        Dim startingPosition As Integer = 0
        If File.Exists(".\contactos-temp.txt") Then
            Using sr As New StreamReader(".\contactos-temp.txt")
                sr.Read()
                startingPosition = Convert.ToInt32(sr.ReadToEnd)
                sr.Close()
            End Using
        End If

        Dim contactos As Integer
        Dim CurrentPosition As Integer = 0
        If contactos < 200 And startingPosition < ListBox1.Items.Count Then
            For x As Integer = startingPosition To ListBox1.Items.Count - 1
                Dim oUser As SKYPE4COMLib.User = CType(ListBox1.Items(x), SKYPE4COMLib.User)
                Dim pUser As SKYPE4COMLib.User
                pUser = oSkype.User(oUser)
                pUser.BuddyStatus = SKYPE4COMLib.TBuddyStatus.budPendingAuthorization
                oSkype.Friends.Add(pUser)
                contactos += 1
                pUser = Nothing
                CurrentPosition = x
            Next
        Else
            Using sw As New StreamWriter(".\contactos-temp.txt")
                sw.Write(CurrentPosition)
                sw.Close()
            End Using
            Process.Start(".\Agregueitor_6000.exe")
        End If

        cambio = contactos * 100 / total

        ProgressBar1.Value = cambio

    End Sub


Un saludo. ;)

Interesados hablad por Discord.

El Benjo

Así sin probar el código me arriesgo a decirte que creo que tu problema se soluciona si dejas así esta parte del código:

Código (vbnet) [Seleccionar]

Dim contactos As Integer
        Dim CurrentPosition As Integer = 0
        If contactos < 200 And startingPosition < ListBox1.Items.Count Then
            Dim oUser As new SKYPE4COMLib.User
            Dim pUser As SKYPE4COMLib.User
            For x As Integer = startingPosition To ListBox1.Items.Count - 1
                oUser = CType(ListBox1.Items(x), SKYPE4COMLib.User)
                pUser = oSkype.User(oUser)
                pUser.BuddyStatus = SKYPE4COMLib.TBuddyStatus.budPendingAuthorization
                oSkype.Friends.Add(pUser)
                contactos += 1
                pUser = Nothing
                CurrentPosition = x
            Next
        Else
            Using sw As New StreamWriter(".\contactos-temp.txt")
...


Inténtalo, la verdad es que no he trabajado con la API de Skype pero creo que tu problema claramente es la creación de tantas variables con ese FOR. Intenta cargar todos los usuarios con esta modificación, así como lo hacías al principio.

Ya nos dirás cómo te fue. Saludos.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.