草庐IT

optimism

全部标签

c++ - g++ 编译器 : optimization flag adds warning message

我注意到g++编译器的这个有趣的行为,如果我向编译器添加一个-O3标志,我会得到otsu.cpp:220:warning:‘x’maybeuseduninitializedinthisfunction但是,当我不使用优化而是使用调试标志-g时,我根本没有收到任何警告。现在,当-g标志打开时,我更信任编译器;但是,我想知道这是否是应该预期的明确定义的行为?为清楚起见,导致此问题的代码大致如下:intx;//uninitializedgetAValueForX(&x);//functionmakesuseofx,//butxisunitialized在哪里voidgetAValueForX

c++ - std::regex_constants::optimize 使用的优化技术

我正在使用std::regex,在阅读std::regex_constants中定义的各种常量时,我​​遇到了std::optimize,阅读它,听起来它在我的应用程序中很有用(我只需要一个正则表达式实例,在开始时初始化,但在整个加载过程中多次使用它)。根据workingpapern3126(第1077页),std::regex_constants::optimize:Specifiesthattheregularexpressionengineshouldpaymoreattentiontothespeedwithwhichregularexpressionsarematched,a

C++ : Can the compiler optimize this code segment?

voidfoo(constintconstant){for(inti=0;i外循环的每次执行都会检查“constant”的值。然而,常量永远不会改变,所以大量的CPU时间被浪费在测试条件常量我个人认为这个问题是不可避免的。即使编译器将比较放在外循环之前并设置某种bool变量“skip_inner_stuff”,仍然必须在外循环的每次传递中检查该变量。您对此事有何看法?是否有更有效的方法来编写上述代码段来避免该问题? 最佳答案 您描述的优化也称为loopunswitching.多年来,它一直是优化编译器的标准部分-但如果您想确保编译器

c++ - GCC 中的 "empty base optimization"是否可配置?

考虑这些类型:structA{};structB:A{inti;};sizeof(A)>0按照标准要求。由于空基优化,sizeof(B)应为4。然而在GCC4.1.1上它是5(我在这个区域使用一包1)。并且不一致-我的一些文件得到了它,有些没有。还不能确定有什么区别,我们有一个很大的项目。在我使用的其他三个编译器(Microsoft和Freescale)上,我没有这个问题。根据thisarticle,空基优化显然是可选的.在GCC4.1.1中是否有编译器选项或pragma来调整它?我可以解决这个问题,但我想先了解发生了什么。我用Google搜索了一段时间,似乎找不到任何东西。

c++ - 判断模板参数包中 "optimal"公共(public)数值类型

在模板参数包中确定常见数字类型的最佳方法是:最小尺寸,没有精度损失,并且将参数包中的任何类型转换为这种“理想”通用类型时没有上溢/下溢的风险吗?可变参数模板(best_common_numeric_type)可以像这样使用:templateautosome_numeric_func(constNumericTypes&...)->typenamebest_common_numeric_type::type;并有像下面这样的实例化:[1]best_common_numeric_type::type=double[2]best_common_numeric_type::type=unsig

c++ - 最小化距离总和 : Optimization Problem

实际问题是这样的:麦当劳计划在一条笔直的高速公路上开设多个分店(比如n个)。这些关节需要仓库来储存食物。仓库可以为任意数量的关节储存食物,但只能位于其中一个关节处。McD的可用仓库数量有限(假设为k),并且希望以这样一种方式放置它们,即接头与最近仓库的平均距离最小。给定一个关节坐标数组(n个元素)和一个整数“k”,返回一个包含“k”个元素的数组,给出仓库最佳定位的坐标。抱歉,我没有任何可用的示例,因为我是凭内存写下来的。无论如何,一个示例可能是:数组={1,3,4,5,7,7,8,10,11}(n=9)k=1答案:{7}这就是我一直在想的:对于k=1,我们可以简单地找出集合的中位数,这

optimization - Redis:内存优化

我有大约256个键。针对每个键,我必须存储大量不重复的整数。以下是前7个键以及每个键的总值(条目)数。每个值都是一个具有较大值的唯一整数。KeyNo.ofintegers(values)inthelistKey13394967Key23385081Key32172866Key42171779Key51776702Key61772936Key71748858默认情况下,Redis会消耗大量内存来存储这些数据。我读到更改以下参数可以大大减少内存使用量。list-max-zipmap-entries512list-max-zipmap-value64任何人都可以向我解释上面的这些配置命令(是

mysql - 什么时候在 mysql 中使用 OPTIMIZE

我有一个充满时间敏感数据的数据库,因此我每天都会截断表,然后将新数据(来自其他数据库的合并)导入截断表中。目前我在导入每日刷新数据后在表上运行OPTIMIZE。但是,查看mysqlOPTIMIZE语法页面http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html它说我可以优化以回收未使用的空间并对数据进行碎片整理。那么我应该运行两次OPTIMIZE吗?当我删除数据时一次,然后在我重新插入数据后再次删除?或者只有一次?如果只是一次,是否应该在加载新数据之后?还是在清除旧的之后? 最佳答案

optimization - 优化我的 mysql 查询以使用索引进行排序

我有一个基于3列的复合索引,其中两列在我的查询中受到约束,第三列是orderby子句,但mysql不使用索引进行排序。explainselect*fromvideoswherepublic_private='public'andapproved='yes'orderbynumber_of_viewsdesc;+----+-------------+--------+------+--------------------------------+------+---------+------+---------+-----------------------------+|id|sele

optimization - 如果更新失败,MySQL 函数插入记录?

我目前正在处理的系统的一部分涉及mysql中的日志,其中计数经常更新。插入的数据格式为:date|name|count|-----------+------+-------+2009-01-12|alan|5|2009-01-12|dave|2|2009-01-12|mary|1|此数据定期从平面文件中解析,如上所示总结以准备数据库插入/更新-数据库中的唯一键是(date,name)对。以前,该系统会在决定更新或插入之前检查现有表中是否有给定date和name对的任何记录。我们遇到的问题是,随着这个表的增长,响应时间并没有变得更好,我们希望尽可能减少查询的数量。系统最近更新为运行INS