トップページ > プログラム > 2014年07月06日 > ikMLm2G0

書き込み順位&時間帯一覧

10 位/233 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000001130100006



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
PHPがいかに駄目言語であるかをちゃんと説明

書き込みレス一覧

PHPがいかに駄目言語であるかをちゃんと説明
666 :デフォルトの名無しさん[sage]:2014/07/06(日) 15:01:09.07 ID:ikMLm2G0
ところで >>622 のリンク先に一応突っ込んどくと、

gcc で -O3 付けたら、そもそも sumup は一度も呼ばれない。
sumup は副作用のない関数で戻り値が代入される result もローカル変数だろ。
その result は main の後の処理で使われないだろ。

だから gcc の最適化器は main 関数の中にある for 自体を丸ごと全部消す。
printf して終わるだけのバイナリができる。
PHPがいかに駄目言語であるかをちゃんと説明
677 :デフォルトの名無しさん[sage]:2014/07/06(日) 16:58:29.43 ID:ikMLm2G0
public class heaptest {
  public static void main(String[] args) {
    SimpleObj[] objs = new SimpleObj[100];
    for (int i = 0; i < 100; i++) {
      objs[i] = new SimpleObj();
    }
    try { Thread.sleep(180 * 1000); } catch (Exception e) {}
  }
}
class SimpleObj {
  public int i;
}

$ javac heaptest.java
$ java heaptest &
$ jmap -dump:format=b,file=heaptest.hprof <PID>
$ jhat heaptest.hprof

これで 7000 番にサーバが立つからブラウザで http://localhost:7000 を開いて見ていけば
どういうオブジェクトがどれだけメモリを使ってるか分かる。
SimpleObj 1 個で 20 バイト。
PHPがいかに駄目言語であるかをちゃんと説明
679 :デフォルトの名無しさん[sage]:2014/07/06(日) 17:00:18.62 ID:ikMLm2G0
<PID> のところは ps でプロセス ID を調べて入力する。
動いているプロセスに attach してダンプを取る仕組みだから Thread.sleep で終わらせないようにしているわけ。
PHPがいかに駄目言語であるかをちゃんと説明
681 :デフォルトの名無しさん[sage]:2014/07/06(日) 17:06:01.78 ID:ikMLm2G0
JVM はオブジェクトの representation については特に仕様で決まってるわけじゃないのか。知らなかった
http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.7

20バイトってのは64bit版のOpenJDK1.7調べ
PHPがいかに駄目言語であるかをちゃんと説明
688 :デフォルトの名無しさん[sage]:2014/07/06(日) 17:53:50.20 ID:ikMLm2G0
ソース追っかけてみたけど、これの oopDesc にある _mark と _metadata が 8*2 で 16 バイト分なのかな。
http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/c7f3d0b4570f/src/share/vm/oops/oop.hpp

PHP しか使わないから Java のことは全然わからん。
誰か詳しい人教えてくれ。
PHPがいかに駄目言語であるかをちゃんと説明
693 :デフォルトの名無しさん[sage]:2014/07/06(日) 19:07:44.59 ID:ikMLm2G0
>>689 >>691
大変参考になりました。感謝します。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。