作者scwg (void * I = NULL;)
看板java
标题Re: 请问关於 -= 这个算子。
时间Wed Jul 28 21:33:16 2004
yuwen 大的结果看起来好像没差, 因为是真的没差 ^^"
disassembly 的结果:
ldc 0
istore #7
L3:^M
iload #7
ldc 1000000
if_icmpge L55
ldc 1000
istore #2
ldc 10
istore #3
ldc 100000
dup
istore #6
dup
istore #5
istore #4
iload #2
iload #3
imul
istore #1
iload #4
iload #1
isub
istore #4
iload #5
iload #1
isub
istore #5
iload #6
iload #1
isub
istore #6
iinc #7 by 1
goto L3
L55:^M
return
不管用 z1 -= v 还是用 z1 = z1 - v 都是一样的
但是如果是对常数做减法的话, 对第一个区域变数做运算
a -= 3; 跟 a = a - 3; 分别会变成
iinc #1 by -3
跟
iload #1
ldc 3
isub
istore #1
应该会差很多 :)
※ 引述《[email protected] (陈慾戒~没义气~唉)》之铭言:
: ※ 引述《[email protected] (蓝月枫铃)》之铭言:
: public class test
: {
: public static void main(String args[]){
: int v,k,s,z1,z2,z3,i;
: for(i=0;i<1000000;i++){
: k = 1000; s = 10; z1 = z2 = z3 = 100000;
: v = k * s;
: z1 -= v; z2 -= v; z3 -= v;
: }
: }
: }
--
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/M/TW d- s:++(+) a--->-- C++$ ULB+>++ P++ L++ E---@
W+ N? o? K? w--(++) O-- !M V- PS-(--) PE- Y PGP- t+ 5?
X R !tv b++ DI+ D+ G e h! !r z
------END GEEK CODE BLOCK------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.20