在循环内或循环外声明变量是否更快?例如:
' Declaration inside of the loop
For each item in items
Dim newVariable as String = GetAString()
Next
' Declaration outside of the loop
Dim newVariable as String = String.Empty
For each item in items
newVariable = GetAString()
Next
Run Code Online (Sandbox Code Playgroud)
哪一个更快?为什么?我假设后者更快,因为它只是重复使用相同的"指针"来引用幕后的新值而不是每次迭代创建一个新指针,对吗?有人可以详细说明吗?
谢谢
更新:
编译器足够智能,可以在生成中间语言时优化代码.它将变量声明移动到方法的顶部.下面是编译后IL中的声明:
.locals init ([0] string newVariable2,
[1] int32 i,
[2] string newVariable,
[3] int32 V_3,
[4] int32 VB$CG$t_i4$S0)
Run Code Online (Sandbox Code Playgroud)
对于那些感兴趣的人来说,这是整个IL:
.method private instance void Form1_Load(object sender,
class [mscorlib]System.EventArgs e) cil managed
{
// Code size 55 (0x37)
.maxstack …Run Code Online (Sandbox Code Playgroud) 可能重复:
数据库规范化究竟做了什么?
有人可以澄清数据规范化吗?有什么不同的水平?什么时候应该"去标准化"?我可以过度正常化吗?我有一张包含数百万条记录的表格,我相信我过度规范了它,但我不确定.
在C++中,如果将指针传递给方法指针,是否首先删除引用的指针?你需要在方法中清理它吗?我正在检查任务管理器中的内存,它正在泄漏!
谢谢!!
我想有一个视图,我可以运行返回多个结果集.这可能吗?
如果视图无法执行此操作,那么SQL Server中是否有另一个具有高可见性/透明度的对象可以实现此目的?(我喜欢使用视图,因为我可以很容易地看到它并在Views文件夹下运行它).存储过程并不是很理想,因为我有这么多.
谢谢
.net ×1
c++ ×1
database ×1
declaration ×1
loops ×1
optimization ×1
sql ×1
sql-server ×1
sql-view ×1
variables ×1