【发布时间】:2011-09-20 10:17:13
【问题描述】:
假设我有一个方法,该方法需要在每次运行期间创建少量对象,并且该方法将被多次调用,即从数据库中删除给定行的方法。每次都创建一个新对象并调用垃圾收集器(或类似的)在最后销毁它,还是每次都重新初始化该值会更好吗?
示例:
每次都使用新的构造函数:
private void RemoveFolder(string dir)
{
OleDbCommand cmd2 = connection.CreateCommand();
OleDbParameter parameterC = new OleDbParameter();
cmd2.Parameters.Add(parameterC);
parameterC.Value = dir;
cmd2.CommandText = "DELETE * FROM [Directories] WHERE Path = ?";
cmd2.ExecuteNonQuery();
cmd2.Dispose();
}
使用单个全局变量(在构造函数中初始化):
private void RemoveFolder(string dir)
{
parameterC.Value = dir;
cmd2.CommandText = "DELETE * FROM [Directories] WHERE Path = ?";
cmd2.ExecuteNonQuery();
}
编辑:当我说得更好时,我的意思是在正常的非“关键任务”程序中“作为一个整体”,其中性能的大幅提升将胜过稳定性的小幅下降.
EDIT2
多次调用类似方法的示例
(注意这是我的另一种方法,AddFolder)
foreach (DirectoryInfo directory in directories)
{
parameter.Value = directory.FullName;
cmd.CommandText = "SELECT LastModified FROM Directories WHERE Path = ?";
reader = cmd.ExecuteReader();
while (reader.Read())
{
output += reader.GetString(0);
}
if (output == null)
{
Console.WriteLine("New Directory! " + directory.FullName);
AddFolder(directory);
}
output = null;
reader.Close();
}
【问题讨论】:
-
能否请您显示多次执行此方法的代码
标签: c# ms-access object oledb methodology