下記のサイトに触発されてなぜ、javaの方が速いのか
検証してみました。 http://pastebin.com/vakRknDk 【ケース1】javaでも遅いケース class B extends bench { int get() { return 1;} } class C extends bench { int get() { return 2;} } abstract public class bench { abstract int get(); public static void main(String args[]) { bench f = new B(); bench f2 = new C(); int sum=0; sum = bench.test(f, f2); System.out.println(sum); } static int test(bench f1, bench f2) { int sum=0; bench f=f1; for( int i=0; i<1000000000; i++ ) { if(i%2==0) { f = f1; } else { f = f2; } sum+=f.get(); } return sum; } }【ケース2】javaが速くなるケース class B extends bench2 { int get() { return 1;} } class C extends bench2 { int get() { return 2;} } abstract public class bench2 { abstract int get(); public static void main(String args[]) { bench2 f = new B(); bench2 f2 = new C(); int sum=0; sum = bench2.test(f, f2); System.out.println(sum); } static int test(bench2 f1, bench2 f2) { int sum=0; bench2 f=f1; for( int i=0; i<1000000000; i++ ) { if(i%2==0) { f = f1; sum+=f.get(); } else { f = f2; sum+=f.get(); } } return sum; } }【ケース3】Cのケース #include <stdio.h> struct bench { virtual int get() const = 0; static int test(bench *f1, bench *f2) { int sum=0; bench *f; for( long i=0; i<1000000000; i++ ) { if(i%2==0) { f = f1; } else { f = f2; } sum+=f->get(); } return sum; } }; class B : public bench { int get() const { return 1; } }; class C : public bench { int get() const { return 2; } }; int main() { bench *f = new B(); bench *f2 = new C(); int sum=0; sum = bench::test(f, f2); printf("%d\n", sum); return 0; } PR |
今更だけど試してみました。
何気にすごい!gdbです。 <Enter> :前回と同じコマンドを実行する n : 関数に入らずに進む s : 関数に入って進む bt:バックトレース(スタック表示) wat: 変数の値が変わったら止まる b:ブレークポイントを貼る f : スタックを移動する c : ブレークポイントまで進む fin:関数の終わりまで進む l:ソースリストを表示する 面白いのは「l」のソースリスト表示~ 「l」を押す度に次の行に進んでしまって 今の場所を表示するのに「n」を押してました・・ でも、「n」を押すと1歩進んでしまうのです。。 そういうときに便利なコマンドが「f」です! この子を押すと今いる場所に移動でき さらに直後に「l」を押すことで今いる場所のリストを 出力してくれる。 VisualStudioよりもコマンドで出きるところがいいかも。 |
margin-topが親コンテナのHeightの何パーセントではなく
margin-topが親コンテナのWidthの何パーセントを取ってきてしまっていますね。 フィードバックを送ってみました。 firebugありがたいな。 |
どうも好きになれないfirefoxのデフォルトです。
でも、androidから見たoperaのURLが「http://」抜きだったので 時流に乗ろうかなと。。 「上へ」ボタンが無くなったのと同じ衝撃を受けたなぁ。 リボン・・使いこなせれば便利なのかな。。 どうも根底にあるのはhttp://って表示されたらURLに そう入力しないといけないと思ってしまうということなのかな? firefoxのURLにhttp://なんて入れたことはないのだけども。 あるいは省スペース? まぁ、エクスプローラでもfile:\\はそういえば省略されてるな。。 |
忍者ブログ [PR] |