• ベストアンサー

ガベージコレクションについて

ガベージコレクションについて いつもお世話になっております。 早速ですが、今ガベージコレクションについて 勉強しています。 そこで以下のことについてお教えください。 (1)ガベージコレクションが入っている言語 (2)メリット (3)デメリット (4)プログラミング時の留意点 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.5

既にwikipediaと回答で、言語/メリット/デメリットについては書かれておりますので >(4)プログラミング時の留意点 :ガベージコレクションの陥り易い問題を紹介します。 何ヶ月も再起動をしないような長期運用するサーバーアプリケーションをJavaで開発した場合、 1ヶ月ぐらいたつとメモリーが食いつぶしてパフォーマンスが落ちたり OutOfMemoryErrorで落ちるといった問題が発生する事があります。 不要になったオブジェクトが静的テーブルに保持され続けているといった可能性が考えられますが 結局ガベージコレクションであろうとも 誰がどれぐらいのオブジェクトを占有しているか等を発見しやすい 仕組みを考慮していなければメモリ・リークの原因をつきとめる事が難しくなります。 ■Javaプログラムでのメモリー・リークの処理 http://www.ibm.com/developerworks/jp/java/library/j-leaks/ ■Javaの理論と実践: 弱参照でメモリー・リークを塞ぐ http://www.ibm.com/developerworks/jp/java/library/j-jtp11225/

その他の回答 (4)

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.4

(1)略。いっぱいある (2)プログラマがメモリ管理する必要がなくなる。懸垂参照のリスクがなくなる。 (3)処理が重い。場合によって長期間プログラムの実行が止まる。 (4)本を参照してもらった方が良いと思う。 http://www.amazon.co.jp/dp/4798025623

参考URL:
http://www.amazon.co.jp/dp/4798025623
  • 486HA
  • ベストアンサー率45% (1013/2247)
回答No.3

「ガベージコレクション」について述べると、質問(1)に該当する磨る言語だけでも相当数になります。 幸いなことにWikipediaに詳細な解説があるので参考になると思います。 http://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%99%E3%83%BC%E3%82%B8%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3

回答No.2

ガベージコレクションが入っている言語…Lisp系言語/関数型言語全般、Perl/Python/Ruby等のいわゆるスクリプト系言語、最近ではGoogleが発表したGoo言語等 あとは省略します。メリットの方がデメリットより多いと思うんで。

回答No.1

(1)Java (2)メモリ管理に煩わされない。(プログラミングが楽) (3)動作速度が遅い。細かい制御が出来ない。 (4)なし

関連するQ&A

  • ガベージコレクションをノートと消しゴムに例えると

    Javaとかのプログラミング言語には「ガベージコレクション」という機能がありますが、この機能を「ノート」と「消しゴム」に例えると・・・ 「ノート」→「メモリ」 「消しゴム」→「ガベージコレクション」 上記のように例えると、「ノートに書いてある邪魔になった不要な箇所の落書きを消しゴムで消して、書ける空白の領域を確保する」というイメージでよろしいのでしょうか?(おおまかな例えですが・・・) 回答のほうよろしくお願いします。

  • ガベージコレクションについて

    ガベージコレクションについて お世話になります。 カテ違いかもしれませんが、こちらで質問させて頂きます。 GCViewerというツールを使ってJAVAのガベージコレクションの量を測っています。 GCViewerで表示されるメモリ量を動的に確認するために、 Windowsのパフォーマンスモニタを用いたいと考えていましたが、 どのカウンタが適切なのか探せません。どのカウンタが適切か教えて頂けないでしょうか。 (WorkingSetではどうも動きが違うみたいです。) Javaプロセスが使用しているメモリ量が把握でき、且つガベージコレクション時に メモリ解放の動きが確認できるカウンタが良いです。 その他、別の確認方法があればあわせて教えて下さい。 以上、よろしくお願いします。

    • ベストアンサー
    • Java
  • CとJAVA、どちらがいいでしょうか?

    プログラミングを始めようと思っています。 趣味としてゲームやソフトを作ろうと思っているんですが CとJAVA、どちらが推されているのでしょうか? または別の言語でもいいので、 薦められているものがあれば よろしくお願いしますm(_ _)m (できればメリットやデメリットを書いていただけるとうれしいです)

  • ゲームプログラミングに興味があるのですが・・・

    現在、趣味としてゲームプログラミングに興味を持っています。 ただいろいろ調べたところプログラミング言語の種類が大変多いようでどれを勉強すれば良いのか少し迷っています。 幸い、Flash(actionscript3)の開発環境を持っている為、とりあえずこの言語から勉強しようかなと思っているのですが、ゲームが作れるようになるまでのスキルを習得できるのにどのくらいの期間が必要でしょうか? 私の程度・環境は、学生の頃BASICで基礎的なプログラミング位なら学習したことがあります。現在、会社に勤めていますが仕事柄、休みが多い為(年間休日200日前後)、趣味に充てれる時間は世間一般より多いと思います また他にもFLASHでゲームプログラミングに挑戦する際の留意点や他にお勧めな言語など、何か助言頂けましたら幸いです。

  • C++の将来性・・・

    昨年まで、C++プログラマをしていました。しかし恥ずかしながらぜんぜんオブジェクト指向じゃないコードを書いていました・・・ いまJavaで仕事していて感じるのですが、C++にはガベージコレクションがないので、実はオブジェクト指向プログラミングがとてもやりにくい言語ではないですか? そうなると、C++の必然性がなくなり、C Java C# に取って代わられてC++は消え去っていく言語なのでしょうか。 「いやC++はすばらしいオブジェクト指向言語だ!」というお叱りを期待しています。

  • C言語で。。。。。

    C言語のプログラミングの勉強をしているのですが、 5.4のような小数点以下ありの数値の整数値を表示させる関数ってありますか??ネットを探してみてもよく分からなくて困っています(><)よろしくお願いします。

  • プログラミング言語ってたくさんあるけど 結局できることは同じ?

    世界では言葉は違うけど最終的に意味は同じなように プログラミング言語ってたくさんあるけど 結局できることは同じなのでしょうか? それともこの言語はここに強い!などはあるのでしょうか? これからVBかC++を勉強しようと思うのですが もしメリットなどがあれば教えてください。 よろしくお願いします。

  • 家の建て方を教えてください。

    現在マンション暮らしですが、数年内に一戸建てを建てたいと思っております。 専門の方でも一般の方でご経験のある方でも結構ですので、広い意味でアドバイスいただければ幸いです。 ポイントとしては、 (1)都心と郊外の比較(メリット、デメリットなど) (2)土地購入の留意点 (3)建物建築の際の留意点 (4)ローン、税金面など (5)その他注意点 などかなと思いますが、その他なんでも大切と思われることは教えてください。 回答そのものではなく、勉強の仕方でも結構です。よろしくお願いします。

  • UWSCはどのプログラミング言語?

    いつもお世話になります。 先日UWSCというものを知り、それがスクリプト言語で動くということを知ったのですが、 UWSCというのは、どのプログラミング言語を覚えれば使いこなせるのでしょうか? プログラミング言語にもC言語やperl,php等あると思うのですが、どれがどのように違うのかがさっぱりわかりません。 よろしくお願いします。

  • マウス状況取得

    簡単なマウスジェスチャーを自作したいと考えています。 (Windows7以上) どのプログラミング言語を選択すればよいかアドバイスをいただきたく、質問します。 下調べをしたところ、C++では実装出来るようですが、 ガベージコレクションがないので、他の言語を探しています。 オススメの言語は、ありますでしょうか? ・プログラミングは、脳トレ(趣味)でやっています。レベルは入門~初心者。 ・Java、python、JavaScript、visual basicは、一通り経験済み。 ・頭が悪いので、簡単に実装したいですが、わがままでしょうか。 よろしくお願いします。

専門家に質問してみよう