从性能角度来看,将每个使用 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/