我正在做一个项目我们需要更多的性能.随着时间的推移,我们不断改进设计,使其更加并行(包括线程和分布式).然后最新的一步是将其中的一部分移动到具有16个核心的新机器上.我发现我们需要重新思考如何在共享内存模型中扩展到那么多内核.例如,标准内存分配器不够好.
人们会推荐哪些资源?
到目前为止,我发现Sutter的专栏Dobbs博士是一个良好的开端.我刚刚获得了多处理器编程的艺术和关于英特尔线程构建模块的O'Reilly书籍
在编写代码时,您是否有意识地进行防御性编程以确保高程序质量并避免代码被恶意利用的可能性,例如通过缓冲区溢出漏洞或代码注入?
您将始终对代码应用的"最低"质量水平是多少?
作为一个长期以来的魔兽世界玩家,以及一个充满激情的开发者,我已经决定将这两者结合起来并着手开发一些插件.不仅可以改善我的游戏体验,还可以作为学习新东西的绝佳机会.
有没有人对如何开始有任何建议?
是否有可以使用的IDE?如何进行测试?有没有现成的图书馆?或者通过忽略图书馆并从头开始构建,我会获得更好的学习体验吗?我怎么选择Hogger?
很想听听你的建议,经验和观点.
我有一些代码用于在.NET CF 2.0上启动一个线程:
ThreadStart tStart = new ThreadStart(MyMethod);
Thread t = new Thread(tStart);
t.Start();
Run Code Online (Sandbox Code Playgroud)
如果我在循环中调用它,则项目完全无序.如何引入等待t.Start(),以便在代码继续之前线程上的工作完成?BeginInvoke/EndInvoke比手动创建线程更适合这个吗?
我多次遇到过以下类型的代码,我想知道这是不是一个好的做法(从性能角度来看):
try
{
... // some code
}
catch (Exception ex)
{
... // Do something
throw new CustomException(ex);
}
Run Code Online (Sandbox Code Playgroud)
基本上,编码器正在做的是它们在自定义异常中包含异常并再次抛出异常.
这与以下两个方面的性能有何不同:
try
{
... // some code
}
catch (Exception ex)
{
.. // Do something
throw ex;
}
Run Code Online (Sandbox Code Playgroud)
要么
try
{
... // some code
}
catch (Exception ex)
{
.. // Do something
throw;
}
Run Code Online (Sandbox Code Playgroud)
撇开任何功能或编码最佳实践论点,这3种方法之间是否有任何性能差异?
为了说明,假设我有两个表如下:
VehicleID Name
1 Chuck
2 Larry
LocationID VehicleID City
1 1 New York
2 1 Seattle
3 1 Vancouver
4 2 Los Angeles
5 2 Houston
Run Code Online (Sandbox Code Playgroud)
我想写一个查询来返回以下结果:
VehicleID Name Locations
1 Chuck New York, Seattle, Vancouver
2 Larry Los Angeles, Houston
Run Code Online (Sandbox Code Playgroud)
我知道这可以使用服务器端游标完成,即:
DECLARE @VehicleID int
DECLARE @VehicleName varchar(100)
DECLARE @LocationCity varchar(100)
DECLARE @Locations varchar(4000)
DECLARE @Results TABLE
(
VehicleID int
Name varchar(100)
Locations varchar(4000)
)
DECLARE VehiclesCursor CURSOR FOR
SELECT
[VehicleID]
, [Name]
FROM [Vehicles]
OPEN VehiclesCursor
FETCH NEXT …Run Code Online (Sandbox Code Playgroud) 有没有一种很好的方法可以在VB6中创建一个可以轻松嵌入其他表单的表单?
最近有几次,我想设计和编写一个Form对象,我可以插入其他几个"父"表单.我的目标是创建一个集中的代码片段,用于以特定方式管理多个UI组件,然后能够在多个位置使用它(UI布局和逻辑).我当然愿意使用代码(而不是设计视图)来加载子表单.
到目前为止,我提出的最好的方法是将子窗体的所有有趣逻辑拉入类模块,并让每个父窗体布局UI(可能在Picture控件中)并将该Picture对象传递给类模块.然后,该班级知道如何对图片进行操作,并假设所有预期的部分都已正确布局.这种方法有几个缺点,我想要更优雅的东西.
有没有办法在C++中实现单例对象:
(我不太了解我的C++,但是在执行任何代码之前初始化积分和常量静态变量的情况(即,甚至在执行静态构造函数之前 - 它们的值可能已在程序中"初始化")如果是这样的话 - 也许这可以被利用来实现单例互斥体 - 这反过来可以用来保护真正的单例的创建......)
很好,现在我似乎有几个好的答案(羞耻我不能标记2或3作为答案).似乎有两个广泛的解决方案:
c++ singleton construction multithreading lazy-initialization
我想开始使用微软的XNA进行一些游戏开发.部分原因是Shader开发,但我不知道如何开始.我知道nVidia的FX Composer是开发着色器的一个很好的工具,但我没有找到有关如何实际入门的有用和更新的内容.
你会推荐什么教程?
Ultramon是一个很棒的双显示器程序(在显示器上拉伸屏幕),但我想知道在Visual Studio中是否有任何方法可以在一台显示器上打开一个代码选项卡,在第二个显示器上打开第二个代码选项卡监视器只运行一个Visual Studio实例?
或者是否有任何其他建议可以在双显示器和Visual Studio上获得最大的收益?
performance ×2
.net ×1
add-on ×1
c# ×1
c++ ×1
code-reuse ×1
construction ×1
exception ×1
forms ×1
lua ×1
malloc ×1
monitor ×1
optimization ×1
plugins ×1
scalability ×1
security ×1
shader ×1
singleton ×1
sql ×1
sql-server ×1
vb6 ×1