[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 05/09 16:36 / Filesize : 56 KB / Number-of Response : 272
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Garbage Collection (GC)について語るスレ



1 名前:デフォルトの名無しさん [2006/03/06(月) 21:07:30 ]
GCの理想と現実について語ってみない?



44 名前:デフォルトの名無しさん [2006/03/08(水) 09:14:24 ]
GCに頼るということは
一時的なリークを許容するってことだよね。

だから、少しのリークも容認できないものには、
結局明示的に開放指示ださないといけない。


45 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 13:00:38 ]
>>44
それじゃ逆向きの説明じゃないのか?

少しのリークも容認できないからGCを用いる。


46 名前:44 mailto:sage [2006/03/08(水) 13:08:08 ]
>>45
一瞬のリークも容認できないものには、
結局、明示的にGCに対して解放の指示ださないといけない。


47 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 13:10:21 ]
そういうパッツンパッツンのときは普通手でGCを起動するんじゃないか。
大抵の処理系は明示的にGCを起動できるでしょ。
GC起動するだけの方が全部の開放を適切に捕まえて書くより楽だけど。

48 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 16:09:07 ]
Boehm GCの簡単な使い方を教えてください >_<

49 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 20:57:13 ]
それくらいgoogleに訊けば教えてくれるぞ。

50 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 22:16:54 ]
どかんとメモリとって
そこを共用体として使えば
GC代わりになるんじゃね?

51 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 23:22:36 ]
バカ度7強の発言来た

52 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 23:28:31 ]
ん?なんの問題があるんだ?



53 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 23:33:45 ]
バカ度8になった。被害は深刻化してます。

54 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 23:44:03 ]
とりあえずマルチコアの恩恵をめちゃくちゃ受けるのがGC


55 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 00:08:40 ]
だからGCの種類によるっちゅうに。

56 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 00:09:13 ]
んなこたーない。コンカレント GC もパラレル GC もまだまだでしょ。
stop the world なのも多いし、現状ではシングル性能が物を言う。

57 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 00:11:04 ]
>>56>>54 宛ね。

58 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 00:40:45 ]
>>56
コンカレントGCとパラレルGCとマルチコアとシングルコアとで比べてみたの?

59 名前:デフォルトの名無しさん [2006/03/09(木) 01:17:04 ]
GCは補助輪付き自転車のようなもの。
いい加減大人になったらはずさないと。

60 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 01:19:44 ]
それしか言えんのか

61 名前:デフォルトの名無しさん [2006/03/09(木) 01:22:48 ]
それで十分だし

62 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 01:26:22 ]
>>58
ちゃんと比較集計した訳じゃないけど、日常的にマルチプロセッサのマシンを使ってるから。
マルチコアの恩恵をめちゃくちゃ受ける GC の設計理論があるなら教えて欲しい。



63 名前:デフォルトの名無しさん [2006/03/09(木) 01:31:58 ]
オライリーから
詳説GC
が出るのはいつの事ですか?

64 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 17:39:50 ]
表紙は何だろうね。
掃除人?ふんころがし?ハイエナ?

65 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 19:31:47 ]
>>64
スカベンジャーならなんでもありじゃないかな。


66 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 22:02:18 ]
死肉食いっつーか
ゴミ集め、だろ

67 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 00:03:10 ]
>>62
Javaは大幅に高速化してないか?

68 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 00:10:06 ]
>>67
少ないメモリなら割と速く済むようになってきた。
でもめいっぱいメモリ積んで最大ヒープごっそりくれてやると

時が止まる


69 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 00:30:28 ]
Javaがメモリ空間広ければ高パフォーマンスになるとは限らないのを
この間知ってちょっとショックだった。

70 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 00:57:39 ]
>>69
GCのパフォーマンスなら観察してパラメータ調整するのは常識化してる<<エンタープライズ用途


71 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 01:01:15 ]
JavaVM は jstat とか、統計情報もちゃんと保持してるのが偉いよね。
チューニングも細かく設定出来るし。

72 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 01:16:11 ]
スループットとレスポンス重視とえらべるし、調整が細かく可能なのがえらいよな

JavaはGCが現実的な速度で動くというのを証明してくれたというか

新世代のGCなんてちゃんとチューニングすれば1msもかからんしね
それと普段はFullGC発生させないようにプロファイラで監視するべき

それができないと>>68のようになる


昔Tomcat2つ立ち上げてとか笑える記事があったよなぁと思い出した



73 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 01:22:50 ]
AP のインスタンスを複数上げるという事なら、普通にやってるよ。
SPEC とかはそれ抜きにはあり得ないし。

74 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 01:31:35 ]
ちゃんと目的があって複数のインスタンスを立ち上げることは別にいい

ITPROだったっけ?GCがまともにチューニングで着なくてインスタンス二つにしましたと
自慢げにいってたやつ

75 名前:デフォルトの名無しさん [2006/03/10(金) 05:22:44 ]
だいたいメモリリークさせる事自体恥ずかしい事なのに
そのチューニングとかもうみてらんない

おしめはこう作ればうんこが漏れない、いやこうだ、とか言ってるようなもん。

一人前はそもそも漏らさない。
漏らさない奴にそんな手の込んだオムツ強制されても重苦しくて歩きにくい。
仕事にならないね。

76 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:13:58 ]
>>75
寂しいヤツだな。ここで幾ら叫んでも、貴様の現実は改善しないぜ。

77 名前:デフォルトの名無しさん [2006/03/10(金) 09:46:45 ]
カベッジコレクションはまさにやろうとしてる事自体がゴミのように無駄な行為
名前通りの愚行

78 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:53:19 ]
GCのご機嫌を取るためのノウハウを得る手間と、free/deleteをきちんとやる手間って
あんまり変わらないよな。ぶっちゃけ、そんなたいそうな機構をいれ、パフォーマンスを
多少犠牲にしてまで導入しないといけないようなものなんだろうか。

C++のようにクラスをヒープ以外にスタックや静的に配置できるなら、リークの発生は
かなり抑えられるわけで。

79 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:54:38 ]
1mSecって凄まじく長い時間だと思う。

80 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:00:17 ]
俺が思うのは「馬鹿にはとっても素晴らしい」ということ。
ただし自分は良くてもプロジェクト内に馬鹿がいるという状況も含める。

馬鹿が書くメモリリークを起こすコードを直すよりはGCを走らせておくほうがいいよ。

81 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:05:11 ]
業務系ドカタにはGCというセーフティネットがないとな。

82 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:35:56 ]
>>77-81
自作自演までしちゃって、哀れな男…



83 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:37:39 ]
つか、C++ 厨か。時代に取り残されるって不幸だな。

84 名前:デフォルトの名無しさん [2006/03/10(金) 11:32:34 ]
>>82
あなたの当て推量は残念ながら外れです。
僕は77ですが78と79は知りません。

85 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 22:51:59 ]
>>78
Javaの次のバージョンのVMではスタックに取るらしいよ

86 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 22:55:19 ]
例えばどこにも参照を渡さないローカルインスタンスなら
スタックに取っておいて捨てるとか、newそのものを無視できるのかもね

87 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 23:29:02 ]
>>85
もう少し詳しく。
C#にあるstackallocの様な構文が導入されるって事?
それとも、コンパイラが判断して自動で挿入するって事?

88 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 23:32:46 ]
>>86のいうようにVMの自動判別
つまり、ソースコードはそのままで高速に動く

89 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 23:34:24 ]
スタックでの割付の利点は短期寿命オブジェクトがヒープ使わないからGCの負荷が大幅にへるんだよねぇ
新世代は元々負荷たいしたことないけど

90 名前:デフォルトの名無しさん [2006/03/11(土) 01:36:39 ]
てか、おまえらなんでそんなにパフォーマンスが気になるんですか?
俺はGCのある言語しか使ってこなかったから、GCあって当然なんだけど、
ポインタってそんなにいいものなんですか?

91 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 01:56:03 ]
main() {
Hoge *hoge;
init(hoge);
}

init(Hoge *hoge) {
hoge = new Hoge();
}

うそみたいなホントの話

92 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 02:17:25 ]
>>91
エラーメッセージ(警告含む)の出ない行を予測するパズル?
空行を除くと、2行目だけはメッセージが出ないと思うのだが。



93 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 02:24:05 ]
同じことがJavaではできない

94 名前:デフォルトの名無しさん [2006/03/11(土) 02:30:38 ]
>>91
小学生でもそんなリークコード書かねーよ。

95 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 02:39:24 ]
出来るか出来ないかの違いを書いただけだが?
main終われば勝手に回収されるだろ

96 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 02:45:22 ]
そういうのは Java スレでやってくれ。

97 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 03:57:29 ]
>>95
OSによる。


98 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 10:01:10 ]
>>90
時と場合による。
それと、GC要らない派はポインタだけを目当てにしているのではないはず。

99 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 10:21:20 ]
GC付きの言語評価器を書く場合はGC使えないわな

100 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 10:54:04 ]
>>91
これはひどい。

101 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 12:49:05 ]
>>87
C#では、stackallocは配列のみ、structは継承していないクラスのみ
スタックに割り当て可能だよな。
JDK 6.0では、実行時コンパイラがエスケープ解析を行うことで、
外部に参照が漏れていない、どんな配列・クラスもスタックに割り当て可能。

102 名前:デフォルトの名無しさん [2006/03/11(土) 13:43:39 ]
Javaはそろそろ次の奴にとって変わられそうだな。
これといって強み無いし。



103 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 13:59:50 ]
>>102
そろそろってほどの期間ではJavaは死にようがないな
完全なオブジェクト指向言語でJava以上のものは未だ存在してない

D言語が気になってたが、あそこはβ版を弄り続けることに
意義を感じてるっぽいから興味も失せてきたなぁ

104 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 14:16:17 ]
>完全なオブジェクト指向言語でJava以上のものは未だ存在してない

Javaが完全なオブジェクト指向言語?未だ存在してない?

C#はJavaのほぼ全てを内包してると思うが、
お前の「完全なオブジェクト指向」の定義は一体何なんだ?

どうせ説明できなくて逃げるに5#

105 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 14:19:27 ]
DはC++の置き換え用途にはいいけどね
ただ、完成してないから次のコンパイルで同じ動作とはいえない
実用度という点では言語仕様完成して安定度が勝負だからまだスタートラインにすら立ってない

C#は実用的といえば聞こえはいいが、クラス指向としてみるとJavaのほうが使いやすいかと
プラットフォームの差もある

Javaは言語的にはプロパティと符号なしのプリミティブ型がつけばわりと万々歳
ガチガチの言語使用のおかげで最適化やツールが用意しやすいのが特徴か

あとはこれほどオープンソースのプロダクトが集まった環境はめずらしいね

106 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 14:19:50 ]
>>103
> 完全なオブジェクト指向言語

そんなにSmalltalkerやらSelferやらを召還したいのか…
Objective-Cにも及ばん分際で…

107 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 14:21:53 ]


   R  u  b  y  の  予  感



108 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 14:26:38 ]
言語に特化したレスは各言語スレでやればよろし。


109 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 14:34:15 ]
>>105
Class.newInstance()のお陰だろ
この手の機能のない言語は、
もうオブジェクト指向を名乗るのは許されないな

110 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 14:42:03 ]
C#とJavaの決定的な違いって例外まわりかな

111 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 14:50:41 ]
Monoが糞すぎて結局Win専用ってところじゃない?

112 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 20:33:50 ]
CLOSこそが真のOO



113 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 20:36:28 ]
>>106-112
スレ違い。

114 名前:デフォルトの名無しさん mailto:sage [2006/03/14(火) 21:45:10 ]
>>110
動作環境まわりだよ

115 名前:デフォルトの名無しさん mailto:sage [2006/03/14(火) 21:47:06 ]
GCの利点

・GCの動作を理解していれば非常に便利
・GCの動作どころかプログラムレベルが低くても比較的安全に

世代別GCになってからはまず欠点ねーな


116 名前:デフォルトの名無しさん mailto:sage [2006/03/14(火) 21:50:58 ]
世代型GCももう古いな
非同期式のGCがそろそろ登場してもいいはずだ

117 名前:デフォルトの名無しさん mailto:sage [2006/03/14(火) 22:04:20 ]
あと、GCの方が実行が早いって利点もあるね。malloc,free方式と比べて。

118 名前:デフォルトの名無しさん mailto:sage [2006/03/14(火) 22:54:44 ]
OSのヒープ呼び出しよりはさすがにね
最近はキャッシュがききやすいように配置しなおすとかもあるし

ただ、ヒープ拡張はGCと同時に起きるので非常に重くなることが予想される
Javaとかデフォの初期ヒープが非常に小さいので最初はGCが連発するので
初期ヒープを大きくしておくべきだ
そうしないと起動が遅いとか言われる羽目になる

GCがあるからメモリ管理をしなくてはいいというのは間違いで
アプリがどれだけのメモリを食うかはどんな環境でも知っておくべき

Javaならプロファイラも無料で使えるんだしね
どこがネックなのか一発で分かる

119 名前:http://www.vector.co.jp/soft/win95/util/se072729.html mailto:http://msdn2.microsoft.com/ja-jp/library/h2k70f3s.aspx [2006/03/18(土) 21:31:22 ]
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?

120 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 14:06:41 ]
まぁ、これは俺のポリシーなんだが、GCは俺には必須だ。
オブジェクトの生成・解放はなるべく、やるなら同じ階層(レベル)でやりたいので、
そういう場合、オブジェクトを返すメソッドとかつくれなくなる。
オブジェクトを作って、メソッドにオブジェクトを渡してなんて、うんこみたいな事になる。


121 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 23:30:03 ]
>>120
> まぁ、これは俺のポリシーなんだが、GCは俺には必須だ。
> オブジェクトの生成・解放はなるべく、やるなら同じ階層(レベル)でやりたいので、
すっごい矛盾してます(はぁと)

122 名前:デフォルトの名無しさん mailto:sage [2006/03/21(火) 07:52:42 ]
>オブジェクトの生成・解放はなるべく、やるなら同じ階層(レベル)でやりたいので、
オブジェクト指向を1から勉強したほうがよさげ



123 名前:デフォルトの名無しさん mailto:sage [2006/03/21(火) 09:45:58 ]
Cでメモリの解法を考えるとバグが少ないのはたしかに同じ階層での解放だし
それは常識のひとつとされてたが、C++になってからオブジェクトのやりとりがはいると
それが見事に崩れ落ちる


124 名前:デフォルトの名無しさん mailto:sage [2006/03/21(火) 11:12:56 ]
同じ階層って意味分からないんだけど、
どんなケース?

125 名前:デフォルトの名無しさん mailto:sage [2006/03/21(火) 19:23:01 ]
マジでわかんないの?頭悪い人?


126 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 14:44:15 ]
やるなら同じ階層で、でもそんなことは現実には無理、だからやらない→GC必須
ってことだろ

127 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 21:47:06 ]
object の extent がすぐ手の届く範囲にあるなら GC 使う必要は少ないよな。

128 名前:デフォルトの名無しさん mailto:sage [2006/04/05(水) 17:11:56 ]
Object* obj = new Object();
delete obj;

を、
boost::share_ptr<Object> obj(new Object());
obj.reset();

に書き換えてくれるプリプロセッサがあったら、
GCなんていらないと思ったのですが、どうでしょうか。

んでC++withGCとか名乗る。


129 名前:デフォルトの名無しさん mailto:sage [2006/04/05(水) 17:14:58 ]
boost::shared_ptr<Object> obj(new Object());
obj.reset();

130 名前:デフォルトの名無しさん mailto:sage [2006/04/05(水) 23:57:52 ]
>>128
struct Object{
Object* obj;
};

Object* obj = new Object();
obj->obj = obj;

どうすんのコレ?

131 名前:デフォルトの名無しさん mailto:sage [2006/04/08(土) 00:19:47 ]
もちろんフロー解析して

boost::shared_ptr<Object> obj(new Object());
obj->obj = NULL;
obj.reset();

にしてください

132 名前:デフォルトの名無しさん mailto:sage [2006/04/08(土) 12:48:24 ]
>>131
意味違ってるじゃん。



133 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 17:09:54 ]
>>132
その辺のチェックが落ちる解析かと…

134 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 07:54:09 ]
いまさらスレを見た者ですが:
>>23 Mostly-Copying GCってのもあった。
ttp://web.yl.is.s.u-tokyo.ac.jp/meeting/doc/yoshinor2001_11_13.ppt
に書いてあるようだ。ちゃんと読んでないけど。


135 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 09:03:51 ]
>>134
それJavaで4年位前から採用してるだろ

136 名前:デフォルトの名無しさん mailto:sage [2006/05/19(金) 16:11:21 ]
㋦㋸㋭°

137 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 14:44:25 ]
みんな,青い本もってる?
もっといい本ある?

138 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 15:26:27 ]
ない。


139 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 16:15:33 ]
でも何度か改訂されているらしいよね。最初の版しか知らないけど。


140 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 22:38:16 ]
青本しか知らない
あとは関連論文を直接あたってる

141 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 01:16:31 ]
やっぱ論文をあさるしかないか...
論文って客観性が足りなくて鵜呑みにできないんだよね...
自分のやっていることはすごいんですみたいな....
この分野に限ったことではないけどね.

142 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 09:11:05 ]
そりゃ数読むしかないのでは?
後はACM computing survey



143 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 14:24:02 ]
>>141
客観性のない論文ってのはありなのか?
普通はRejectされないか?



144 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 16:01:08 ]
現実はそうなっていません。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<56KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef