我正在构建一个PHP页面,其中包含从MySQL发送的数据.
拥有它会更好吗?
SELECT查询,包含4个表连接,或SELECT没有表连接的4个小查询; 我从ID中选择哪个更快,每个方法的pro/con是什么?我每个表只需要一行.
我在多线程环境中有一个对象来维护一组信息,例如:
public IList<string> Data
{
get
{
return data;
}
}
Run Code Online (Sandbox Code Playgroud)
我目前return data;用a包裹ReaderWriterLockSlim来保护集合免于共享违规.但是,为了更加确定,我想将集合作为只读方式返回,这样调用代码就无法对集合进行更改,只能查看已经存在的集合.这是可能吗?
我有一个主要的asp.net应用程序,它是用asp.net 1.1编写的.在应用程序下面运行的是几个2.0应用程序.要完全注销用户,我可以使用FormsAuthentication.SignOut注销1.1应用程序,还是比这更复杂?
作为我的集成策略的一部分,我有一些SQL脚本运行以更新数据库.所有这些脚本做的第一件事就是检查它们是否需要运行,例如:
if @version <> @expects
begin
declare @error varchar(100);
set @error = 'Invalid version. Your version is ' + convert(varchar, @version) + '. This script expects version ' + convert(varchar, @expects) + '.';
raiserror(@error, 10, 1);
end
else
begin
...sql statements here...
end
Run Code Online (Sandbox Code Playgroud)
效果很好!除非我需要添加存储过程."create proc"命令必须是一批sql命令中的唯一命令.在我的IF语句中放入"create proc"会导致此错误:
'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.
哎哟! 如何将CREATE PROC命令放在我的脚本中,并让它只在需要时执行?
我非常有信心在程序启动时分配(并初始化,如果适用)全局声明的变量.
int globalgarbage;
unsigned int anumber = 42;
Run Code Online (Sandbox Code Playgroud)
但是在函数中定义的静态的呢?
void doSomething()
{
static bool globalish = true;
// ...
}
Run Code Online (Sandbox Code Playgroud)
globalish分配的空间是什么时候?我猜测程序什么时候开始.但是它也被初始化了吗?或者它doSomething()是在第一次调用时初始化的?
我们的编译时间非常慢,在双核2GHz,2G Ram机器上可能需要20多分钟.
这很大程度上是由于我们的解决方案的规模已经发展到70多个项目,以及VSS,当你拥有大量文件时,它本身就是瓶颈.(不幸的是,交换VSS不是一个选项,所以我不希望它下降到VSS bash)
我们正在考虑合并项目.我们还在寻找多种解决方案,以便为应用程序的每个元素实现更大的关注点分离和更快的编译时间.我可以看到这将成为一个DLL地狱,因为我们试图保持同步.
我很想知道其他团队如何处理这个扩展问题,当你的代码库达到一个临界质量时你会怎么做,你正在看着状态栏传递编译消息的一半时间.
更新 我忽略了这是一个C#解决方案.感谢所有的C++建议,但是我已经有几年了,因为我不得不担心标题.
编辑:
到目前为止有很好的建议(不是说下面没有其他好的建议,只是帮助了什么)
仍然没有通过编译扯皮,但每一点都有帮助.
Orion在评论中确实提到仿制药也可能有一个游戏.从我的测试来看,似乎确实有最小的性能损失,但不足以确定 - 由于光盘活动,编译时间可能不一致.由于时间限制,我的测试没有包含与实时系统中出现的一样多的泛型或代码,因此可能会累积.我不会避免在它们应该被使用的地方使用泛型,只是为了编译时的性能
替代方法
我们正在测试在新解决方案中构建应用程序新领域的实践,根据需要导入最新的dll,当我们对它们感到满意时,将它们集成到更大的解决方案中.
我们也可以通过创建临时解决方案来对现有代码执行相同的操作,这些解决方案仅封装我们需要处理的区域,并在重新集成代码后将它们丢弃.我们需要权衡重新整合这些代码所需的时间与我们获得的时间,因为没有Rip Van Winkle喜欢在开发过程中快速重新编译的经验.
前段时间,我为我们的一个内部程序构建了一个记录和分类应用程序崩溃的系统.当时,我使用频率和聚合丢失时间(程序启动和崩溃之间的时间)的组合来确定崩溃类型的优先级.它运作得相当好.
现在,那些想要在每种类型的碰撞成本上获得可靠数据的力量.或者至少,数字看起来很稳固.我想我可以使用总损失时间乘以一些似乎合理的数字,但它看起来很狡猾.
是否有任何已建立的方法来计算应用程序崩溃的实际成本?或者没有,发表的研究推测这些成本?
准确性是不可能的,但如果一致地应用并且其限制明确记录,则基于正常运行时间的估计应该足够.谢谢,马特,猎户座,花时间回答这个问题.
我需要生成一些密码,我想避免可能互相混淆的字符.我应该避免使用明确的字符列表吗?我目前的名单是
il10o8B3Evu![] {}
还有其他容易混淆的字符对吗?对于特殊字符,我打算将自己限制在数字键下,但我知道这取决于你的键盘国籍!
作为一个骑手的问题,我希望我的密码是'wordlike'你有一个受欢迎的算法吗?
谢谢 :)
我最近才开始使用asp.net和c#.实时最终网站是否有标准的web.config设置练习集?似乎有很多选择,我希望简化性能,关闭可能的安全漏洞和其他不必要的选项.
就目前而言,我是一名Java和C#开发人员.我越来越关注Ruby on Rails,我越想学习它.
你发现什么是学习RoR的最佳途径?在Windows上开发会更容易,还是应该只运行Linux的虚拟机?
是否有一个IDE可以匹配Visual Studio的健壮性?任何开发的程序都可以提供很好的开销吗?好书怎么样?
说真的,任何提示/技巧/咆哮都会很棒.
asp.net ×2
c# ×2
security ×2
.net ×1
asp.net-1.1 ×1
c++ ×1
collections ×1
compilation ×1
concurrency ×1
crash ×1
ide ×1
mysql ×1
optimization ×1
passwords ×1
performance ×1
php ×1
ruby ×1
sql-server ×1
statistics ×1
variables ×1
web-config ×1