草庐IT

改进灰狼优化算法

全部标签

c# - 有没有办法让 .Net JIT 或 C# 编译器优化掉空的 for 循环?

Does.NETJIToptimizeemptyloopsaway?的跟进:下面的程序只运行一个空循环十亿次并打印出运行时间。在我的机器上需要700毫秒,我很好奇是否有办法让抖动优化空循环。usingSystem;namespaceConsoleApplication1{classProgram{staticvoidMain(){varstart=DateTime.Now;for(vari=0;i据我所知,答案是否定的,但我不知道是否有我可能没有尝试过的隐藏编译器选项。我已经确保在Release模式下编译并在没有附加调试器的情况下运行,但仍然需要700毫秒来运行这个空循环。我也尝试了N

c# - 允许 C# 编译器优化局部变量并从内存中重新获取值

编辑:我问的是当两个线程在没有适当同步的情况下同时访问相同数据时会发生什么(在这次编辑之前,这一点没有明确表达)。我对C#编译器和JIT编译器执行的优化有疑问。考虑以下简化示例:classExample{privateAction_action;privatevoidInvokeAction(){varlocal=this._action;if(local!=null){local();}}}请忽略示例中读取_action可能会产生缓存和过时的值,因为没有volatile说明符或任何其他同步。这不是重点:)是否允许编译器(或者实际上是运行时的抖动)优化对局部变量的赋值,而不是从内存中读

c# - c#中字符串比较的更快算法

我有两个句子需要相互比较。最终结果是一个句子在另一个句子中包含多少百分比,我的问题是我有100.000条记录需要与另外10条记录进行比较。那是1.000.000次循环,这在我的算法中非常慢。这是我正在使用的算法:privatedoubleBreakStringsAndCheck(strings1,strings2){if(s1==null||s2==null||s1.Length==0||s2.Length==0)return(double)0;string[]firstArray=s1.Split('');string[]secondArray=s2.Split('');if(fir

c# - 使用 Dijkstra 算法寻找最短路线

我需要找到图的2个顶点之间的最短路线。我有一个矩阵,其中包含所有权重。我该怎么做?目前,我有以下代码:privateint[]Dijkstra(intstart,intend){bool[]done=newbool[8];int[]parent=newint[8];for(inti=0;i它有效,但是,但是我不知道如何让它找到例如1和3之间的最短路线,并返回1=>4=>2=>3之类的路线。提前致谢。 最佳答案 Djikstra算法使用父数组来跟踪从开始到结束的最短路径。您将从parent[end]开始并跟随数组的条目,直到您回到起点

c# - 如何改进 Entity Framework 和 Javascript 交互

这是一个非常模糊/主观的问题。我想知道这是否是使用ajax调用向/从浏览器发送/检索数据的最佳方式。在后端webservice上,我想使用EntityFramework。下面是两个示例函数。“最佳”的标准是编写代码的速度、可读的代码和健壮的架构。感谢您的任何反馈、建议和意见。获取函数[WebMethod]publicAjaxEmployeeEmployeeGetById(intemployeeID,boolgetTimeOff){using(Time_TrackerEntitiesctx=newTime_TrackerEntities()){varresults=fromiteminc

c# - Microsoft Solver foundation 与 Matlab fmincon 中的约束非线性优化

任何人都可以向我展示MicrosoftSolverfoundation3.0中约束非线性优化的示例或评论吗?与Matlab的fmincon相比如何?或者是否有更好的.net库用于约束非线性优化?谢谢, 最佳答案 2012年2月25日的重要更新:MSF3.1现在通过其NelderMeadSolver求解器支持使用有界变量的非线性优化:http://msdn.microsoft.com/en-us/library/hh404037(v=vs.93).aspx对于一般的线性约束,Microsoftsolverfoundation仅通过其内

c# - 如何针对双核、四核和更高的多处理器进行优化?

伙计们,我从事高速软件编程已经20多年了,几乎了解书中的每一个技巧,从微平台制作合作、分析、用户模式多任务处理、尾递归,你可以用它来命名非常高性能的东西Linux、Windows等。问题是,当CPU密集型工作的多个线程暴露给多核处理器时,我发现自己对发生的事情感到困惑。线程之间(在不同内核上)共享数据的各种方式的微基准测试的性能结果似乎不符合逻辑。很明显,内核之间存在一些“隐藏的交互”,这在我自己的编程代码中并不明显。我听说过L1缓存和其他问题,但这些对我来说是不透明的。问题是:我在哪里可以学到这些东西?我正在寻找一本关于多核处理器如何工作、如何编程以利用其内存缓存或其他硬件架构而不是

c# - SQL 性能、.Net 优化与最佳实践

我需要专业人士/大师的确认/解释如下,因为我的团队告诉我“没关系”,这让我很沮丧:)背景:我们有一个SQLServer2008,我们的主MVC3/.Net4Web应用程序正在使用它。在任何给定点,我们都有大约200多个并发用户。服务器受到了极大的打击(锁定、超时、整体缓慢),我正在尝试应用我在整个职业生涯中以及在上一次MS认证类(class)中学到的东西。它们是我们一直在钻研的东西(“关闭SQL连接STAT”),我试图向我的团队解释这些“小东西”,虽然不是单独一个就能产生影响,但最终会加起来。我需要知道以下内容是否会对性能产生影响,或者这只是“最佳实践”1.使用“USING”关键字。他

c# - .NET框架实现了什么排序算法

这个问题在这里已经有了答案:Whichsortingalgorithmisusedby.netinIComparer(3个答案)关闭9年前。在.NET中实现IComparable之类的东西时,有人可以建议.NET使用什么排序算法对基础数据进行实际排序吗?所使用的算法是可定制的还是可选的?

c# - 使用具有模糊容忍算法的笔划作为加密 key

如何使用模糊容错来加密/解密?我希望能够使用InkCanvas上的Stroke作为我加密的key,但是当再次解密时,用户不必绘制完全相同的符号,只是相似。这可以在.NETC#中完成吗?---更新(9月9日)---我理想中想要的是一种加密算法,它可以接受基于某些基本key和定义允许差异的函数的特定key范围内的任何key..我在本地进行所有加密/解密,因此我不需要安全地通过线路发送任何内容。而且我不想存储用于加密的key,所以我没有任何可比较的东西。我可以想出一些方法来为每个相似的笔画生成相同的键,但如果想要接受任何类型的符号(不仅是字母),这并不容易。另一种选择是加密key是否可以通过