constantfolding相关内容
我发现 Java 支持原始类型的常量折叠,但是 Strings 呢? 示例 如果我创建以下源代码 out.write(""+ ""+ ""+“如果分成多行,更容易阅读"+ ""+ ""+ ""); 编译后的代码中有什么内容? 组合版本?out.write("如果分成多行更容易阅读
..
我一直对 Perl 执行的常量折叠优化感到好奇,但是当代码涉及 Moose 时,很可能不会执行常量折叠(如果我错了,请纠正我). > 我有包含以下方法的 Moose 代码: sub foo {我的 ($self) = shift;我的 $test_y = $self->pos->[1];#...if ($self->is_map_val($self->pos->[0]+8, $test_y+
..
给定这两个仅改变 Module::FOO() 和 FOO() 的评估. # 符号导入,并在本地使用.评价QQ[包 Foo$num;模块->import();我的 \$result = Module::FOO() * Module::FOO();] 否则死 $@;# 符号导入,未在本地引用父符号使用.评价QQ[包 Foo$num;模块->import();我的 \$result = FOO() *
..
我刚刚意识到CPython似乎对待常量表达式,它们表示相同的值,而常量折叠方面却有所不同.例如: >>>导入dis>>>dis.dis('2 ** 66')1 0 LOAD_CONST 0(2)2 LOAD_CONST 1(66)4个BINARY_POWER6 RETURN_VALUE>>>dis.dis('4 ** 33')1 0 LOAD_CONST 2(737869762948382064
..
给出类似的命令 perl -MO = Deparse -E'use constant FOO =>42;打印FOO()' 如何禁用这样的恒定折叠 打印42; 告诉我 print FOO(); 之类的.理想情况下,我希望这是一个适用于所有Perl的编译器选项.您可以在perl邮件列表 [perl#97942] [PATCH]添加 -DO 选项以禁用优化,并禁用常量折叠和窥视孔优
..
对于以下 C 源代码: #include int main(void) { double x; x = log(0.0); return 0; } 当我使用gcc -lm进行编译时,我得到了: /tmp/ccxxANVH.o: In function `main': a.c:(.text+0xd): undefine
..
在Java中是否有称为“恒定折叠"的概念?如果是,那是什么? 解决方案 常量折叠是在编译时简化常量表达式的过程.常量表达式中的术语通常是简单的文字,例如整数2,但也可以是永远不会修改其值的变量,也可以是明确标记为常量的变量 是的,它存在于Java中:编译器优化
..
可能重复: 有没有任何概念称为”恒定折叠”在java? 嗨 我遇到过Java编译器使用称为Constant Folding的东西。这是什么?它是如何影响的? 解决方案 常量折叠是编译器找到包含编译时常量的表达式并将其替换为结果有效地消除了冗余的运行时计算。 // code static final int a = 2; int b = 30 * a;
..
我发现 Java支持原始类型的不断折叠 ,但是字符串 s呢? 示例 如果我创建以下源代码 out.write(“” + “” +“” +“如果分成多行,则更容易阅读” +“” +“” +“”); 编译代码的内容是什么? 组合版本? out.write(“
..
下面是我的code: INT F(双X) { 返回isnan(X); } 如果我的#include<&CMATH GT; 我得到这个组件: xorl%EAX,EAX% ucomisd%XMM0,%XMM0 SETP%人 这是合理巧妙: ucomisd 设置奇偶标志如果x与自身的比较是无序的,意义x是NAN。然后 SETP 复制奇偶标志到结果(仅一个字节,因此,初步明确的%EA
..
有关以下的 C 的源$ C $ C: 的#include<&math.h中GT;INT主要(无效) { 双X; X =日志(0.0); 返回0; } 当我编译 gcc的-lm ,我得到了: /tmp/ccxxANVH.o:在函数'主': 。交流转换器:(文字+ 0xd中):未定义引用'登录' collect2:错误:LD返回1退出状态 但是,如果我取代日志(
..