Pérdida de memoria en VB

Notamos un problema interesante con respecto a la administración de memoria en VB que no entendemos. Si alguien puede ayudarnos con este, por favor hazlo.

Tenemos una clase simple con un solo evento. Creamos y destruimos 5000 instancias de esta clase y antes de ejecutar una prueba, leemos el uso de la memoria del proceso. Al final, forzamos GC y verificamos la memoria nuevamente. Lo que notamos es que tenemos una memoria constante en crecimiento. Hicimos la misma muestra en C # y no nos encontramos con este problema. Ahora aquí está el punto cableado. Si omitimos la declaración de evento de la clase, la memoria se limpiará como esperábamos. ¿Alguien sabe por qué y cuál es la forma correcta de finalizar esta clase?

Aquí está el código de ejemplo:

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim memorySize As Long
        memorySize = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64

        Console.Out.WriteLine(System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / (1024.0 * 1024.0))
        For index As Integer = 1 To 5000
            Dim x As New TestClass()


            x = Nothing
            Me.Text = index.ToString()
        Next
        GC.Collect()
        Console.Out.WriteLine(System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / (1024.0 * 1024.0))
        Console.Out.WriteLine("delta: " + ((System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 - memorySize) / (1024.0)).ToString() + " kb")

    End Sub
End Class

y clase de prueba:

Imports System.ComponentModel
Imports System.ComponentModel.Design.Serialization
Imports System.Xml
Imports System.Xml.XPath

Public Class TestClass

    Friend Event ForeColorChanged()

    Public Sub New()
    End Sub


    Protected Overrides Sub Finalize()
        MyBase.Finalize()
    End Sub

End Class

Y la impresión después de varias ejecuciones:

22,76953125
23,828125
delta: 2016 kb
24,08984375
24,0625
delta: 228 kb
24,4375
24,2109375
delta: 24 kb
24,58984375
24,83984375
delta: 384 kb
24,84375
24,890625
delta: 48 kb

Respuestas a la pregunta(2)

Su respuesta a la pregunta