C#-Postgres-随着时间的推移内存泄漏问题

C#-Postgres-随着时间的推移内存泄漏问题,c#,postgresql,memory-leaks,C#,Postgresql,Memory Leaks,问题:内存会随着时间的推移而泄漏和积累,最终达到99%的容量 这是我之前就同一主题提出的问题。我按照回答的人告诉我的做了,但我仍然遇到内存泄漏问题。我真的不明白记忆是从哪里积累起来的。我观察了Windows任务管理器,发现内存会定期清除,但内存累积速度比清除速度快,因此,最终内存容量达到99% 这是我的C#代码: var connString = "Host=x.x.x.x;Port=5432;Username=postgres;Password=password;Database=databa

问题:内存会随着时间的推移而泄漏和积累,最终达到99%的容量

这是我之前就同一主题提出的问题。我按照回答的人告诉我的做了,但我仍然遇到内存泄漏问题。我真的不明白记忆是从哪里积累起来的。我观察了
Windows任务管理器
,发现内存会定期清除,但内存累积速度比清除速度快,因此,最终内存容量达到99%

这是我的
C#
代码:

var connString = "Host=x.x.x.x;Port=5432;Username=postgres;Password=password;Database=database";
@Info.Trace("PostGre ");

using (var conn = new Npgsql.NpgsqlConnection(connString)){

    conn.Open();

    int ctr = 0;

    // Insert some data
    using (var cmd = new Npgsql.NpgsqlCommand())
    {
        cmd.Connection = conn;

        var par_1 = cmd.Parameters.Add("@r", NpgsqlTypes.NpgsqlDbType.Timestamp);
        var par_2 = cmd.Parameters.Add("@p", NpgsqlTypes.NpgsqlDbType.Double);

        while(@tag.TerminateTimeScaleLoop == 100)
        {   
            @Info.Trace("Pushed Data: PostGre A " + ctr.ToString());

            cmd.CommandText = "INSERT INTO TORQX VALUES (@r,@p)";
            par_1.Value = System.DateTime.Now.ToUniversalTime();
            par_2.Value = @Tag.RigData.Time.TORQX;
            cmd.ExecuteNonQuery();            

            ctr = ctr + 1;
        }


    }
    @Info.Trace("Pushed Data: PostGre A Terminated");
    conn.Close();              

}
是什么导致了记忆的积累?我可以防止它累积吗?如果无法防止累积,我可以手动清除内存吗?哪套代码可以做到这一点


我几乎没有使用
C#
的经验,我被指派对此
C#
代码进行热修复,因为编写此代码的人现在不在。我在
Python
方面有很多经验,但在
C#
方面没有经验,所以请以非常明确的方式给我建议。。。否则我就不知道了。谢谢

这些痕迹有什么作用?否则,这段代码中的任何内容都不会导致任何持久内存使用。未使用的内存就是浪费内存。随着GC堆的增长,CLR将回收和重用可用ram。它上升到99%并不是出现问题的迹象,尤其是在处理任何规模的sql数据库时。