gpt4 book ai didi

c# - C# 的 SQLite 中的内存泄漏?

转载 作者:行者123 更新时间:2023-12-03 14:51:28 27 4
gpt4 key购买 nike

我在 C# 中使用 sqlite。为了测试数据库变大时的性能,我编写了一个程序来生成随机数据,但内存不足。
我发现我已经创建了一个新的 IDbCommand 实例

IDbCommand cmd = dbConnection.CreateCommand() ;

每个新插入的方法,这就是内存泄漏的地方。如果我调用`
cmd.Dispose();`

执行 SQLCommand 后,一切正常。
通常,不会有大量操作,所以我不介意为每个操作创建新的 Command 实例所浪费的时间。但是如果内存不被处理,那就是个问题了。

这是我调用 cmd.Dispose() 的职责还是 sqlite-net 的错误?

最佳答案

处理所有实现 IDisposable 的东西是一个很好的做法。 .

您可以使用 using声明这样做:

using (IDbCommand cmd = dbConnection.CreateCommand())
{
// Your code here
}

请注意 cmd超出 using 的范围语句 block 。 using声明处置您的 IDisposable当执行超出该 block 时。它还会在出现异常时处理所有内容。

关于c# - C# 的 SQLite 中的内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29190171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com