作者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