optimization相关内容

“好像"究竟是什么?规则?

正如标题所说: 究竟什么是“as-if"规则? 一个典型的答案是: 允许任何和所有不改变程序可观察行为的代码转换的规则 有时,我们会不断从某些实现中获取行为,这些行为归因于该规则.多次出错. 那么,这条规则到底是什么?标准并没有明确将这条规则作为一个部分或段落提及,那么究竟什么属于该规则的范围? 对我来说,这似乎是一个标准没有详细定义的灰色区域.有人可以详细说明 ..
发布时间:2022-01-30 15:59:33 C/C++开发

什么是最“蟒蛇"?以块为单位迭代列表的方法?

我有一个 Python 脚本,它以整数列表作为输入,我需要一次处理四个整数.不幸的是,我无法控制输入,否则我会将其作为四元素元组列表传入.目前,我正在以这种方式对其进行迭代: for i in range(0, len(ints), 4):# 示例代码的虚拟操作foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3] 不过,它看起来很像“ ..
发布时间:2022-01-29 23:42:39 Python

django admin中的备用用户选择界面以减少大型站点上的页面大小?

我有一个基于 Django 的站点,其中包含大约 300,000 个用户对象.由于生成的表单大小约为 6MB,因此对于 User 具有 ForeignKey 字段的对象的管理页面需要 非常 很长时间才能加载.当然,生成的下拉菜单也不是特别有用. 是否有任何现成的替代品来处理这种情况?我一直在谷歌搜索片段或博客条目,但还没有找到任何东西.我想要一个更小的下载大小和一个更实用的界面. 解决 ..

比较对象数组,最佳方式

我有两个数组.在每个数组中,我都有具有很多属性但没有方法的对象.我需要查看数组 1 是否与数组 2 相等. 一种方法是创建一个函数,该函数传递数组的每个元素,并将对象的每个属性与第二个数组中相似位置的对象进行比较. 问题是数组非常大,而且每个对象都有很多属性.如果还有其他方法,我正在徘徊.例如,在 C++ 中我可以读取内存......但我不知道如何在 js 中做到这一点. 我需要 ..
发布时间:2022-01-25 09:04:48 前端开发

与零比较是否比与任何其他数字比较快?

是 if(!test) 快于 if(test==-1) 我可以生产组装件,但生产的组装件太多,我永远找不到我想要的细节.我希望有人知道答案.我猜它们是相同的,除非大多数 CPU 架构都有某种“与零比较"的捷径. 感谢您的帮助. 解决方案 通常,是的.在典型的处理器中,针对零进行测试或测试符号(负/正)是简单的条件代码检查.这意味着可以重新排序指令以省略测试指令.在伪汇编中,考 ..
发布时间:2022-01-25 08:59:13 C/C++开发

为什么 std::vector 是连续的?

除了标准定义它是连续的,为什么 std::vector 是连续的? 如果空间不足,则需要重新分配一个新块并将旧块复制到新块,然后再继续. 如果不是连续的怎么办?当存储填满时,它只会分配一个新块并保留旧块.当通过迭代器访问时,它会做简单的 >, ..
发布时间:2022-01-24 20:45:58 C/C++开发

Python - 完美数搜索的优化

p = []对于范围内的 x (1, 50000000):计数 = 0对于范围内的 y(1, x//2 + 1):如果(x % y == 0):计数 += y如果(计数 == x):p.append(x) 这是我的代码,用于尝试查找源自 1 到 50000000 之间的所有完美数字.它适用于前 3 个数字,它们在 1 到 10000 之间.但随着它的进展,它变得非常缓慢.就像可能每 10 秒通过 ..
发布时间:2022-01-24 19:44:38 Python

C ++中的动态与静态多态性:哪个更可取?

我了解动态/静态多态性取决于应用程序设计和要求.但是,如果可能的话,是否总是选择静态多态性而不是动态多态性?特别是,我可以在我的应用程序中看到以下两种设计选择,这两种选择似乎都被建议不要使用: 使用 CRTP 实现静态多态性:没有 vtable 查找开销,同时仍以模板基类的形式提供接口.但是,使用大量的 switch 和 static_cast 来访问正确的类/方法,这是危险的 动态多 ..
发布时间:2022-01-24 16:30:17 C/C++开发

在不同优化级别访问 gcc/g++ 中的局部变量和全局变量的速度

我发现 gcc 中不同的编译器优化级别在访问循环中的局部变量或全局变量时会给出完全不同的结果.这让我感到惊讶的原因是,如果访问一种类型的变量比访问另一种类型的变量更可优化,我认为 gcc 优化会利用这一事实.这里有两个例子(在 C++ 中,但它们的 C 对应物给出了几乎相同的时间): 全局 = 0;for (int i = 0; i ..
发布时间:2022-01-23 21:04:38 C/C++开发

为什么要使用 -O2 而不是 -O3 进行编译

我们通常使用 -O2 进行编译,因为 -O3 会“触发细微的错误". 对于我们的 GCC 版本,-O3 启用了更积极的内联,这实际上会揭示否则未被注意到的错误(例如,使用来自函数的未初始化值将它们作为引用参数或数组的越界访问).在我看来,这种激进的内联还允许使用更小的函数以更具表现力的方式进行编码,并且 -funswitch-loops 有助于使变量定义在循环中更加本地化. 鉴于我们代 ..
发布时间:2022-01-23 20:56:51 其他开发

为什么 volatile 局部变量的优化与 volatile 参数不同,为什么优化器会从后者生成无操作循环?

背景 这是受此问题/答案和评论中随后讨论的启发:“易失性"的定义是这种易失性还是GCC 有一些标准合规性问题?.根据其他人和我对应该发生的情况的解释,正如评论中所讨论的,我已将其提交给 GCC Bugzilla:https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71793 其他相关回复也欢迎. 此外,该线程已经引起了这个问题:Does acces ..
发布时间:2022-01-23 20:41:40 C/C++开发

如何用 g++ 向量化我的循环?

我在搜索时找到的介绍链接: 6.59.14 Loop-Specific Pragmas 2.100 Pragma Loop_Optimize 如何向 gcc 提供有关循环计数的提示 告诉 gcc 专门展开循环 如何在 C++ 中强制向量化 正如您所见,它们中的大多数都是用于 C 的,但我认为它们也可能适用于 C++.这是我的代码: template//__attribute_ ..
发布时间:2022-01-23 20:30:35 C/C++开发

g ++中的优化级别-O3危险吗?

我从各种来源(尽管主要来自我的一位同事)听说,在 g++ 中使用 -O3 的优化级别进行编译在某种程度上是“危险的",通常应该避免,除非证明是必要的. 这是真的吗?如果是,为什么?我应该坚持使用 -O2 吗? 解决方案 在早期的gcc(2.8等)和egcs的时代,redhat 2.96 -O3有时会出现很多bug.但这是十多年前的事了,-O3 与其他级别的优化(在错误方面)没有太大区 ..
发布时间:2022-01-23 20:16:07 C/C++开发

如何在 g++ 中使用配置文件引导优化?

另外,谁能给我指出一个关于这个主题的好教程?我找不到. 解决方案 -fprofile-generate 将使用分析代码检测应用程序.如果在编译时知道这种使用模式,应用程序将在实际运行时记录可以提高性能的某些事件.可以记录分支、内联的可能性等,但我不确定 GCC 是如何实现这一点的. 程序退出后,会将所有这些数据转储到 *.gcda 文件中,这些文件本质上是用于测试运行的日志数据.使用 ..
发布时间:2022-01-23 20:15:24 C/C++开发