草庐IT

原来如此

全部标签

c# - 为什么 Entity Framework 对数据库进行如此多的往返?

我正在重写我的应用程序以使用EntityFramework。我感到困惑的是我正在编写的代码看起来像是在对sqlserver进行不必要的访问。比如我有一个类似SO的问答网站。当我添加问题的答案时——这是我使用的代码:varqu=context.question.where(c=>c.questionID==11).First();//Databasecallherevaranswer=newanswer();answer.title="titlehere";answer.desc="deschere";answer.question=qu;context.SaveChanges();//

c# - 为什么数组协方差被认为如此可怕?

在.NET中,引用类型数组是协变的。这被认为是一个错误。但是,我不明白为什么这会如此糟糕,请考虑以下代码:string[]strings=new[]{"Heythere"};object[]objects=strings;objects[0]=newobject();噢,这会编译,但会在运行时失败。当我们试图将一个对象粘贴到一个字符串[]中时。好吧,我同意这很糟糕,但是T[]扩展了Array并且还实现了IList(和IList,我想知道它是否实现了IList...>。Array和IList都让我们犯了同样可怕的错误。string[]strings=new[]{"Heythere"};A

c# - 委托(delegate)会导致内存泄漏吗? GC.TotalMemory(true) 似乎表明如此

代码usingSystem;internalstaticclassTest{privatestaticvoidMain(){try{Console.WriteLine("{0,10}:Startpoint",GC.GetTotalMemory(true));ActionsimpleDelegate=SimpleDelegate;Console.WriteLine("{0,10}:Simpledelegatecreated",GC.GetTotalMemory(true));ActionsimpleCombinedDelegate=simpleDelegate+simpleDelegat

c# - 为什么这个非常简单的 C# 方法会产生如此不合逻辑的 CIL 代码?

我最近一直在深入研究IL,我注意到C#编译器有一些奇怪的行为。以下方法是一个非常简单且可验证的应用程序,它将立即退出,退出代码为1:staticintMain(string[]args){return1;}当我使用VisualStudioCommunity2015编译它时,生成了以下IL代码(添加了注释):.methodprivatehidebysigstaticint32Main(string[]args)cilmanaged{.entrypoint.maxstack1.localsinit([0]int32V_0)//LocalvariableinitIL_0000:nop//Do

javascript - JS : Why Is This Slower? 它不应该测试其他 OR 条件但它确实如此?

我刚刚测试了一些东西。我一直认为在OR条件下,一旦计算机/浏览器发现某些东西是真的,它就会返回它并且不会测试其他条件。我围绕这个假设构建了我的代码。但是,我对它进行了计时,看起来长测试花费了x4倍,对此有什么解释吗?注意:已在GoogleChrome控制台中测试。JSPerf:http://jsperf.com/or-condition返回真||1http://jsperf.com/or-condition2var条件=真||1;返回条件;http://jsperf.com/or-condition3if(true||1)returntrue好像比较快编辑:我刚刚发现true之后的条件

javascript - Rails 3 - 设计 'Please enter an email address' 弹出消息,即使在禁用验证时也是如此

我似乎无法删除在注册过程中每当电子邮件地址无效时出现的烦人的弹出消息。我正在使用Devise并尝试删除:validatable但消息仍然弹出。它必须是javascript或其他东西,因为页面不会重新加载,消息只是出现在一个丑陋的粉红色框中。该消息仅显示“请输入电子邮件地址”。我无法在网络或github上找到任何关于此问题的信息,也无法在devise应用程序中找到可能与此事件相关的任何代码。有什么想法吗? 最佳答案 这可能是由于您的浏览器内置了html5验证。尝试将novalidate="novalidate"添加到您的表单标签

php - 为什么 float 的打印方式如此不同?

众所周知,(大多数)float存储不准确(当使用IEEE-754格式时)。所以不应该这样做:0.3-0.2===0.1;//verywrong...因为它将导致false,除非使用了某些特定的任意精度类型/类(Java/Ruby中的BigDecimal,PHP中的BCMath,Perl中的Math::BigInt/Math::BigFloat,以命名一些)代替。但我想知道为什么当一个人试图打印这个表达式的结果时,0.3-0.2,脚本语言(Perl和PHP)给出0.1,但是“虚拟-machine”的(Java、JavaScript和Erlang)给出更类似于0.0999999999999

javascript - 为什么在 IE8 上的 JavaScript 中访问图像的尺寸如此昂贵?

我必须处理大量图像。首先,我需要检查图片的大小是否大于50x60,适当增加坏图的计数器。我遇到的问题是n.width的速度/n.height在InternetExplorer8上非常低。我检查了n.offsetWidth,n.clientWidth但它们在速度方面都是相同的。我不能使用n.style.width但是,因为这个值并不总是设置在上我感兴趣的标签。考虑以下代码:JavascriptvarTest={processImages:function(){varfS=newDate().getTime();varminimagew=50,minimageh=60;varimgs=do

PHP: 'method doesnt exist' ,但确实如此

我有这个奇怪的错误,当我调用$element_attrs=$element->attributes();时,我收到一条通知,指出属性方法不存在:CalltoundefinedmethodstdClass::attributes();现在当我调用die(get_class($element));就在attributes()调用之前,php返回Select_Element这是正确!Form_Element包含attribute();方法。我肯定Select_Element扩展了Form_Element并且两个文件都包含在内。然而如果我调用:if(method_exists($element

php - 是什么导致 PHPExcel 在使用分块过滤器读取文件时使用如此多的内存?

与许多其他人一样,我在读取文件(将其转换为MySQL)时一直在为PHPExcel内存使用而苦苦挣扎。当然我已经尝试过各个地方提到的通常的东西并且已经能够将内存效率提高至少40%。这包括使用自定义分块读取器类、将分块读取器实例化移到读取循环之外等。我的测试服务器上有16GRAM,并在PHP中分配了2G最大内存使用量。对于~200K行以下的文件,PHPExcel将工作(缓慢但肯定)。一旦超过一定大小,脚本就会失败,只会向shell输出“Killed”。日志显示内核杀死了PHP,因为它使用了太多内存。在使用top命令观察CPU和内存使用情况时,我可以看到内存空闲和交换空闲直线下降,而内存使用