声明在循环外部的循环中使用的变量而不是内部更好吗?有时我会看到在循环中声明变量的示例.这是否有效地导致程序在每次循环运行时为新变量分配内存?或者.NET足够聪明,知道它真的是同一个变量.
例如,请参阅此答案中的以下代码.
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[32768];
while (true)
{
int read = input.Read (buffer, 0, buffer.Length);
if (read <= 0)
return;
output.Write (buffer, 0, read);
}
}
Run Code Online (Sandbox Code Playgroud)
这个修改过的版本会更有效吗?
public static void CopyStream(Stream input, Stream output)
{
int read; //OUTSIDE LOOP
byte[] buffer = new byte[32768];
while (true)
{
read = input.Read (buffer, 0, buffer.Length);
if (read <= 0)
return;
output.Write (buffer, 0, read);
}
}
Run Code Online (Sandbox Code Playgroud) 我想在Delphi中创建一个游戏
Delphi有什么好的游戏引擎吗?
基于directx 10还是OpenGL?
我需要它用于3D游戏,或者只有我能用C++做到这一点?
我在调整TPaintBox的大小并绘制它时遇到问题:
在我的表单(名为FMain)上,我删除了一个TPaintBox(名为DisplayImage),我试图在调整Form大小时调整大小.
为此,我为FMain写了一个OnResize()方法(我确认它被正确调用),我尝试调整DisplayImage的大小:
procedure TFMain.FormResize(Sender: TObject);
begin
DisplayImage.Width := FMain.ClientWidth;
DisplayImage.Height := FMain.ClientHeight;
DisplayImage.Canvas.Brush.Color := clGreen;
DisplayImage.Canvas.Brush.Style := bsSolid;
DisplayImage.Canvas.Rectangle(0, 0, DisplayImage.Width, DisplayImage.Height);
end;
Run Code Online (Sandbox Code Playgroud)
恕我直言,最后一个代码应该在整个图像上绘制一个全图像绿色矩形,使其有效地始终为绿色.相反,我得到一个灰色图像(就像Delphi的标准bg颜色),每隔一段时间调整一次,绿色图像闪烁.
我缺少什么,是否有一些我需要在调整大小后更新的隐藏组件?
先感谢您,
暴风雪
我想在NetBeans IDE中向JTable添加一个右键单击弹出菜单(看起来像一个简单的任务...大声笑)
我得到了部分工作
但这只是部分有效.现在,当我右键单击Table时,弹出菜单,但JTable中的选定行不会改变.因此,当调用menuitem的actionPerformed时,我不知道JTable中的哪一行被点击了.
我怎么能得到这个?或者在netbeans中有更简单的方法吗?
我知道还有其他方法(在代码中),但我更喜欢使用netbeans GUI builder.
有没有人曾经这样做过?
谢谢你的帮助!
当我加载包debug来调试带有zoo对象的脚本时,我遇到了麻烦:函数index来自zoo被debug包掩盖.我该怎么解开index?一般来说,如何处理这些名称冲突问题?我们只是不使用debug"动物园"包?
我在SQL Server(2008 R2 Developer Edition)中也有一个非常大的表,它有一些性能问题.
我想知道另一个DBMS是否会更好地处理大型表.我主要只考虑以下系统:SQL Server 2008,MySQL和PostgreSQL 9.0.
或者,正如上面提到的引用问题所示,表大小和性能主要是索引和缓存的一个因素吗?
此外,更大的正常化会提高性能,还是会阻碍它?
编辑:
下面的评论之一声称我含糊不清.我有超过2000万行(20年的库存数据和2年的期权数据),我试图弄清楚如何将性能提高一个数量级.我只关心读/计算性能; 我不关心写性能.唯一的写入是在数据刷新期间,那些是BulkCopy.
我已经有了一些索引,但希望我做错了,因为我需要加快速度.我也需要开始查看我的查询.
提供的评论和答案已经帮助我了解如何开始分析我的数据库.我是程序员,而不是DBA(因此Marco的书推荐是完美的).我没有那么多的数据库经验,我以前从未对数据库进行过分析.我会尝试这些建议并在必要时报告.谢谢!
为什么我得到错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS(SELECT id FROM mytable WHERE id = '1')' at line 1
Run Code Online (Sandbox Code Playgroud)
查询:
IF EXISTS(SELECT id FROM mytable WHERE id = '1')
Run Code Online (Sandbox Code Playgroud)
谢谢
使用MacVim查找和打开文件的最快方法是什么?NERDtree是一个很棒的插件,但我仍然必须导航(有时非常深)目录树才能找到我想要的文件.是否有任何功能允许我搜索文件名的子字符串并向我显示我可以点击的结果集?
这些代码语句是否相同?它们之间有什么区别吗?
private void calculateArea() throws Exception {
....do something
}
Run Code Online (Sandbox Code Playgroud)
private void calculateArea() {
try {
....do something
} catch (Exception e) {
showException(e);
}
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个简单的登录屏幕,从底部垂直堆叠登录按钮,用户名和密码编辑框.
当有人单击用户名/密码字段时,虚拟键盘会出现并隐藏其下方的编辑框或按钮.我在另一个应用程序中看到这个,登录按钮始终保持在可见区域....我怎么能实现这一点?