optimization相关内容

切换 if-else 语句的优势

对于 30 个 unsigned 枚举,使用 switch 语句与使用 if 语句的最佳实践是什么,其中大约 10 个具有预期操作(目前是相同的动作).需要考虑性能和空间,但并不重要.我已经抽象了这段代码,所以不要因为命名约定而讨厌我. switch 语句: //numError 为错误枚举类型,0 为非错误情况//fire_special_event() 是共享处理的存根方法开关 (nu ..
发布时间:2022-01-19 10:12:27 C/C++开发

给定一个目标总和和一组整数,找到与该目标相加的最接近的数字子集

我有一组整数 M 和一个目标总和 k.我想找到 M 的子集,当它加在一起时最接近 k 而不会超过. 例如: M = {1, 3, 5, 5, 14}k = 12答案 = {1, 5, 5}因为 1 + 5 + 5 = 11 而没有办法使 12. 我有一个额外的约束,即子集最多可以包含 4 个元素. 在我的应用程序中,|M| 的大小可以很大(大约有数千个元素).如果无法在合理的时间内 ..

在 Java 中有效地计算两个集合的交集?

在 Java 中查找两个非稀疏集合的交集大小最有效的方法是什么?这是我将在大型集合上调用很多次的操作,因此优化很重要.我无法修改原始集. 我查看了 Apache Commons CollectionUtils.intersection,它似乎很慢.我目前的方法是取两个集合中较小的一个,克隆它,然后在两个集合中较大的一个上调用 .retainAll. public static int ge ..
发布时间:2022-01-17 17:54:44 Java开发

如何在 HTTP Content-Type 响应头中指定字符集?

我使用 Google 的 Page Speed 应用测试了我的网站,其中一个建议是指定HTTP Content-Type 响应标头中的字符集声称它比元标记中的要好. 以下是我理解我需要写的内容:内容类型:文本/html;charset=UTF-8 ..但是我应该把这个放在哪里?我在共享服务器上. 谢谢! 解决方案 Apache:添加到根目录下的 .htaccess 文件中 ..

快速查找某个值是否存在于 C 数组中?

我有一个具有时间关键 ISR 的嵌入式应用程序,它需要遍历一个大小为 256 的数组(最好是 1024,但 256 是最小值)并检查一个值是否与数组内容匹配.在这种情况下,bool 将设置为 true. 微控制器是 NXP LPC4357,ARM Cortex M4 内核,编译器是 GCC.我已经组合了优化级别 2(3 更慢)并将函数放在 RAM 中而不是闪存中.我还使用指针算术和 for ..
发布时间:2022-01-17 13:56:30 其他开发

ARM 设备上代码优化的 C++ 技巧

我一直在为 ARM 设备上的增强现实开发 C++ 代码,代码的优化对于实现保持良好的帧率.为了将效率提高到最高水平,我认为收集一般提示很重要使编译器的工作更轻松,并减少程序的循环数.欢迎提出任何建议. 1- 避免高成本指令:除法、平方根、sin、cos 使用逻辑移位来除以或乘以 2. 尽可能乘以倒数. 2- 优化内部“for"循环:它们是一个瓶颈,所以我们应该避免在内部进行大量 ..
发布时间:2022-01-17 13:33:54 C/C++开发

/optimize C# 编译器密钥的用途是什么?

/是否有完整的优化列表优化 C# 编译器密钥 随处可用? 编辑:为什么默认禁用?是否值得在实际应用中使用? -- 默认情况下,它仅在 Debug 配置中禁用,在 Release 中启用. 解决方案 Scott Hanselman 有一篇博文 展示了/optimize(在 Release Builds 中启用)功能的几个示例. 作为一个总结:/optimize 做了很多没有给出确 ..
发布时间:2022-01-17 08:56:48 C#/.NET

每次 GCC 进行优化后获取汇编代码?

来自维基百科上的优化编译器, 编译器优化通常使用优化转换序列实现,这些算法采用程序并对其进行转换,以生成使用较少资源的语义等效输出程序. 而且 GCC 有 很多 优化选项. 我想研究在使用 -O1、 等不同标志编译时 GCC 执行的每次优化后生成的程序集(-S 给出的程序集)-O2、-O3等 我该怎么做? 编辑:我的输入将是 C 代码. 解决方案 中间表示可以 ..
发布时间:2022-01-17 08:56:31 其他开发

除了检查发出的机器代码之外,我如何找到 C++ 编译器如何实现某些东西?

假设我制作了一组类来抽象某些东西,现在我担心我的 C++ 编译器是否能够剥离这些包装并发出非常干净、简洁和快速的代码.如何找出编译器决定做什么? 我知道的唯一方法是检查反汇编.这适用于简单代码,但有两个缺点 - 编译器在再次编译相同代码时可能会有所不同 而且机器码分析也不是小事,所以很费功夫. 我还能如何找到编译器如何决定实现我在 C++ 中编写的代码? 解决方案 恐怕你在这方 ..
发布时间:2022-01-17 08:55:26 C/C++开发

检查字符串内容?字符串长度与空字符串

对于编译器和检查字符串是否为空的最佳实践,哪个更有效? 检查字符串的长度是否== 0 检查字符串是否为空(strVar == "") 另外,答案是否取决于语言? 解决方案 是的,这取决于语言,因为不同语言的字符串存储不同. Pascal 类型字符串:Length = 0. C 风格的字符串:[0] == 0. .NET:.IsNullOrEmpty. 等等. ..

Java是否优化了2的幂除以移位?

Java 编译器或 JIT 编译器是否将除法或乘法优化为 2 的恒定幂以进行位移? 例如,以下两个语句是否优化为相同? int 中位数 = start + (end - start)>>>1个;int 中位数 = 开始 + (结束 - 开始)/2; (基本上 这个问题但对于 Java) 解决方案 不,Java 编译器不这样做,因为它无法确定 (end - start) 的标志是什 ..
发布时间:2022-01-17 08:54:31 Java开发

gcc 4.3.3 编译器选项默认启用

我已经从 gcc 版本 4.0.3 移动到 4.3.3 并意识到 -mfpmath 在 gcc 4.3.3 中默认设置为 sse.这实际上导致了我的应用程序中的错误.在 4.0.3 中,-mfpmath 为 387. 我想知道如何获得 gcc 为给定版本启用的所有默认选项.如何在编译时转储 gcc 使用的所有选项集.这使我能够比较 4.0.3 和 4.3.3 版本. 一般来说,如果我能 ..
发布时间:2022-01-17 08:46:33 C/C++开发

Delphi:如何组织源代码以提高编译器性能?

我正在开发一个包含大量依赖项的大型 delphi 6 项目.编译整个项目需要几分钟.一些更改后的重新编译有时会更长,因此可以更快地终止 Delphi,擦除所有 dcu 文件并重新编译所有内容. 有没有人知道一种方法来识别,是什么让编译器越来越慢?关于如何组织代码以提高编译器性能的任何提示? 我已经尝试过以下事情: 在 dpr 中明确包含大部分单元,而不是依赖搜索路径:它没有任何改 ..
发布时间:2022-01-17 08:46:03 其他开发

java什么时候比c++快(或者JIT什么时候比预编译快)?

可能重复: JIT 编译器与离线编译器 我听说在某些情况下,由于 JIT 优化,Java 程序或更确切地说是部分 Java 程序能够比 C++ 中的“相同"代码(或其他预编译代码)更快地执行.这是因为编译器能够确定一些变量的范围,避免一些条件并在运行时提取类似的技巧. 你能否举一个(或更好的——一些)例子,这适用于什么地方?并且也许概述了编译器能够优化字节码超出预编译代码可能的确切条 ..
发布时间:2022-01-17 08:45:27 Java开发

关于 GHC 实施的好的介绍性文字?

在 Haskell 中编程时(尤其是在解决 Project Euler 问题时,次优的解决方案往往会对 CPU 或内存需求造成压力),我经常对为什么程序的行为方式感到困惑.我查看配置文件,尝试引入一些严格性,选择另一种数据结构,......但大多是在黑暗中摸索,因为我缺乏良好的直觉. 另外,虽然我知道 Lisp、Prolog 和命令式语言的典型实现方式,但我不知道如何实现惰性语言.我也有点好 ..

优化的 c++ 编译器如何重用函数的堆栈槽?

优化的 c++ 编译器如何确定函数的堆栈槽(函数堆栈帧的一部分)何时不再需要该函数,以便它可以重用其内存?. 堆栈槽是指函数堆栈框架的一部分,不一定是函数的整个堆栈框架,一个澄清问题的例子是,假设我们有一个函数,它的范围内定义了六个整数变量,时间到了在函数中使用第六个变量,第五个变量变得无用,因此编译器可以为第五个和第六个变量使用相同的内存块. 感谢您提供有关此主题的任何信息. 解决方案 ..
发布时间:2022-01-17 08:41:10 C/C++开发