Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 46

Discussione: Gc.AddMemoryPressure

  1. #1

    Gc.AddMemoryPressure

    Come si usa? che parametro ha? avete qualche esempio?

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    cercare nella documentazione on-line no??

    PS: leggere il regolamento prima di postare

  3. #3
    non riesco a capire come funziona su msdn... non ne parla nessuno....

  4. #4
    mi spiego meglio.... ho progettato un server per una rete dove si connettono dei client, ogni client è fatto da una classe dove ce nome cognome e robe varie... molti campi anche complessi...
    ora cosa succede, quando questi utenti iniziano a diventare 500-600 la ram mi sbatte a 400 mb!!!!!!!! una cosa assurda...
    e non riesco a capire perche il gc non si libera delle utenze disconnesse è come se le lasciasse in memoria....
    ce un modo per dirgli che quella classe deve eliminarla senza stare a pensare quando farlo?

  5. #5
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    quel metodo parla di memoria non gestita di grandi dimensioni allocata da oggetti di piccole dimensioni..

    il tuo è palesemente un problema di memory leak dovuto probabilmente ad una non corretta deallocazione delle risorse.. controlla che queste "utenze" vengano effettivamente liberate, con rigerimenti impostati a null o con il metodo dispose (se esiste)

    nel caso tutto ciò ci sia (lo dubito cmq) prova con i metodi

    codice:
    Gc.WaitForPendingFinalizers()
    gc.Collect()

  6. #6
    e questi 2 metodi dovrei eseguirli tipo se sale troppo la ram? li eseguo a mia scelta? o tipo li posso fare ogni mezzora.... il programma è online 24/24 e 7/7 come faccio a scegliere il momento piu opportuno?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi correggere i memory leak ...

    Nel tuo codice, usi anche delle chiamate ad API o codice non managed?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    no, solo creazione di classi user e eliminazione delle stesse

    dim us as new user
    us.nome=pippo
    us.cognome=rossi
    etc etc

    arrayusers.add(us)

    faccio quello che devo fare

    arrayuser.remove(us)

    ma continua a salire di ram... perche non lo rimuove?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Bisogna dare un'occhiata a tutto il codice per capire ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    codice:
    Public Class user
        'NMDC
        Public ultimomex As String
        Public ultimoconnecttome As Int64
        Public ip As String
        Public nick As String = ""
        Public share As Int64
        Public isop As Boolean
        Public profile As Integer
        Public ultimamyinfo As Int64
        Public ultimosearch As Int64
        Public ultimonicklist As Int64
        Public ultimomexint As Int64
        Public ultimopvt As Int64
        Public ultimopvtachi As String
        Public conteggiomyinfo As Integer
        Public conteggiogetnicklist As Integer
        Public zline As Boolean
        Public usercommand As Boolean
        Public stato As String
        Public inizialistato As String
        Public myinfo As String = ""
        Public altronick As String = ""
        Public avvertimenti As Integer
        Public temp As String = ""
        Public falso As Boolean
        Public sharenascosto As Boolean
        Public loggato As Byte = 0
        Public timecontrol As Int64
        Public fraseparla As String
        Public nicklist As Boolean = False
        Public cambiata As Boolean = False
        Public primavotla As Boolean = True
        Public fallato As Integer
        Public supportotthsearch As Boolean = False
        Public infomandate As Boolean = False
        Public client As System.Net.Sockets.Socket
        Public modalita As Char = "M"
        Public contr As Byte = 0
        Public quit As Byte = 0
        Public nickadc As Byte = 0
        Public ReadBuffer(1024) As Byte
    
        'ADC
        Public adc As Boolean = False
        Public cod As String
        Public id As String
        Public pd As String
        Public slots As Integer
        Public email As String
        Public descr As String
        Public taguser As Integer
        Public tagreg As Integer
        Public tagop As Integer
        Public binf As String
    
        Public Sub finale()
            Me.Finalize()
        End Sub
    End Class
    codice:
      Public Sub disconnettiuser(ByRef user As user)
            On Error Resume Next
            IMPOSTAZIONI.oplist.Remove(user)
            IMPOSTAZIONI.vero.Remove(user)
            IMPOSTAZIONI.users.Remove(user)
            mandaatutti2adc("IQUI" & Chr(32) & user.cod, user)
            If user.nickadc = 0 Then
                If user.isop Then
                    mandaoplistconthread()
                End If
                If user.quit = 0 Then
                    mandaatutti2("$Quit " & user.nick)
                End If
                If user.altronick <> "" Then
                    mandaatutti2("$Quit " & user.altronick)
                End If
            End If
    
            user.client.Close()
            user.cod = Nothing
            user.id = Nothing
            user.pd = Nothing
            user.email = Nothing
            user.descr = Nothing
            user.binf = Nothing
            user.altronick = Nothing
            user.fraseparla = Nothing
            user.inizialistato = Nothing
            user.ip = Nothing
            user.myinfo = Nothing
            user.nick = Nothing
            user.stato = Nothing
            user.temp = Nothing
            user.ultimomex = Nothing
            user.ultimopvtachi = Nothing
            user.modalita = Nothing
            user.ReadBuffer = Nothing
            user.finale()
        End Sub
    quella è la classe user... e poi ce la procedura per eliminarla...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.