c# - 关于 C# 中 LINQ2Sql 性能的问题

标签 c# performance linq-to-sql

从性能角度来看,将每个使用 LINQ 的语句包装在 using() 语句中更好,还是声明一个类级实例并在每个方法中使用更好?

例如:

public void UpdateSomeRecord(Record recordToUpdate)
{
    using(var entities = new RecordDBEntities())
    {
        // logic here...
    }
}


private RecordDBEntities entites = new RecordDBEntities();
public void UpdateSomeRecord(Record recordToUpdate)
{
    // logic here...
}

或者两者都不重要?

谢谢!

最佳答案

using 语句可能会损害性能,因为它需要更长的时间才能运行,但在这种情况下,您不必担心这一点。如果一个类型实现了IDisposable,它确实应该被包装在using语句中,这样它就可以自行清理。

当然,此清理代码比没有清理代码的运行时间更长,因此这就是为什么我说 using 语句将需要更长的运行时间。但这并不意味着您不应该使用using语句。我认为您应该使用using语句,即使它可能需要更长的时间来运行。

我想我想说的是,您在这里比较苹果和橙子,因为只有当被比较的代码创建相同的输出和相同的副作用时,性能比较才有意义。您的示例并没有说明为什么我认为这不是性能问题。

这种情况下的最佳实践是在实现 IDisposable 的类型上使用 using 语句,无论 using 语句将使方法运行时间更长。如果您需要知道它会运行多长时间,那么您应该使用分析器来确定相关代码是否会造成瓶颈。

关于c# - 关于 C# 中 LINQ2Sql 性能的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1362904/

相关文章:

c# - 控制台与 WebAPI 中共享类库的 MediatR 设置

c# - .NET Core 2.1/Angular - SignalR 只需 2 分钟即可连接到集线器

javascript - 为 Codewars 练习优化 JavaScript

c++ - C++中比较的效率? (绝对值(X)> 1 对比绝对值(x)!= 0)

vb.net - LINQ VB如何选择具有最大日期(最高日期)的记录

c# - 将 MVC 4 中的路由模板更改为 nameofvendor/controller/id

c++ - 比 std::atomic<bool> 更便宜的替代品?

asp.net - 如何创建 "eBay style"类别和子类别的层次结构?

c# - Linq 表达式中的条件

c# - 找不到类型或命名空间名称